4
4
using System . Net . Http . Headers ;
5
5
using System . Threading . Tasks ;
6
6
using JsonApiDotNetCore . Serialization ;
7
- using JsonApiDotNetCoreExample . Data ;
8
7
using JsonApiDotNetCoreExample . Models ;
9
8
using JsonApiDotNetCoreExampleTests . Helpers . Extensions ;
10
- using Microsoft . AspNetCore . Hosting ;
11
- using Microsoft . AspNetCore . TestHost ;
12
9
using Newtonsoft . Json ;
13
10
using Xunit ;
14
11
15
12
namespace NoEntityFrameworkTests . Acceptance . Extensibility
16
13
{
17
- public class NoEntityFrameworkTests
14
+ public class NoEntityFrameworkTests : IClassFixture < TestFixture >
18
15
{
19
- private readonly TestServer _server ;
20
- private readonly AppDbContext _context ;
16
+ private readonly TestFixture _fixture ;
21
17
22
- public NoEntityFrameworkTests ( )
18
+ public NoEntityFrameworkTests ( TestFixture fixture )
23
19
{
24
- var builder = new WebHostBuilder ( )
25
- . UseStartup < TestStartup > ( ) ;
26
- _server = new TestServer ( builder ) ;
27
- _context = _server . GetService < AppDbContext > ( ) ;
28
- _context . Database . EnsureCreated ( ) ;
20
+ _fixture = fixture ;
29
21
}
30
22
31
23
[ Fact ]
32
24
public async Task Can_Get_TodoItems ( )
33
25
{
34
26
// arrange
35
- _context . TodoItems . Add ( new TodoItem ( ) ) ;
36
- _context . SaveChanges ( ) ;
27
+ _fixture . Context . TodoItems . Add ( new TodoItem ( ) ) ;
28
+ _fixture . Context . SaveChanges ( ) ;
37
29
38
- var client = _server . CreateClient ( ) ;
30
+ var client = _fixture . Server . CreateClient ( ) ;
39
31
40
32
var httpMethod = new HttpMethod ( "GET" ) ;
41
33
var route = $ "/api/v1/custom-todo-items";
@@ -45,7 +37,7 @@ public async Task Can_Get_TodoItems()
45
37
// act
46
38
var response = await client . SendAsync ( request ) ;
47
39
var responseBody = await response . Content . ReadAsStringAsync ( ) ;
48
- var deserializedBody = _server . GetService < IJsonApiDeSerializer > ( )
40
+ var deserializedBody = _fixture . Server . GetService < IJsonApiDeSerializer > ( )
49
41
. DeserializeList < TodoItem > ( responseBody ) ;
50
42
51
43
// assert
@@ -59,10 +51,10 @@ public async Task Can_Get_TodoItems_By_Id()
59
51
{
60
52
// arrange
61
53
var todoItem = new TodoItem ( ) ;
62
- _context . TodoItems . Add ( todoItem ) ;
63
- _context . SaveChanges ( ) ;
54
+ _fixture . Context . TodoItems . Add ( todoItem ) ;
55
+ _fixture . Context . SaveChanges ( ) ;
64
56
65
- var client = _server . CreateClient ( ) ;
57
+ var client = _fixture . Server . CreateClient ( ) ;
66
58
67
59
var httpMethod = new HttpMethod ( "GET" ) ;
68
60
var route = $ "/api/v1/custom-todo-items/{ todoItem . Id } ";
@@ -72,7 +64,7 @@ public async Task Can_Get_TodoItems_By_Id()
72
64
// act
73
65
var response = await client . SendAsync ( request ) ;
74
66
var responseBody = await response . Content . ReadAsStringAsync ( ) ;
75
- var deserializedBody = ( TodoItem ) _server . GetService < IJsonApiDeSerializer > ( )
67
+ var deserializedBody = ( TodoItem ) _fixture . Server . GetService < IJsonApiDeSerializer > ( )
76
68
. Deserialize ( responseBody ) ;
77
69
78
70
// assert
@@ -86,7 +78,7 @@ public async Task Can_Create_TodoItems()
86
78
{
87
79
// arrange
88
80
var description = Guid . NewGuid ( ) . ToString ( ) ;
89
- var client = _server . CreateClient ( ) ;
81
+ var client = _fixture . Server . CreateClient ( ) ;
90
82
var httpMethod = new HttpMethod ( "POST" ) ;
91
83
var route = $ "/api/v1/custom-todo-items/";
92
84
var content = new
@@ -109,7 +101,7 @@ public async Task Can_Create_TodoItems()
109
101
// act
110
102
var response = await client . SendAsync ( request ) ;
111
103
var responseBody = await response . Content . ReadAsStringAsync ( ) ;
112
- var deserializedBody = ( TodoItem ) _server . GetService < IJsonApiDeSerializer > ( )
104
+ var deserializedBody = ( TodoItem ) _fixture . Server . GetService < IJsonApiDeSerializer > ( )
113
105
. Deserialize ( responseBody ) ;
114
106
115
107
// assert
0 commit comments