44using System . Net . Http . Headers ;
55using System . Threading . Tasks ;
66using JsonApiDotNetCore . Serialization ;
7- using JsonApiDotNetCoreExample . Data ;
87using JsonApiDotNetCoreExample . Models ;
98using JsonApiDotNetCoreExampleTests . Helpers . Extensions ;
10- using Microsoft . AspNetCore . Hosting ;
11- using Microsoft . AspNetCore . TestHost ;
129using Newtonsoft . Json ;
1310using Xunit ;
1411
1512namespace NoEntityFrameworkTests . Acceptance . Extensibility
1613{
17- public class NoEntityFrameworkTests
14+ public class NoEntityFrameworkTests : IClassFixture < TestFixture >
1815 {
19- private readonly TestServer _server ;
20- private readonly AppDbContext _context ;
16+ private readonly TestFixture _fixture ;
2117
22- public NoEntityFrameworkTests ( )
18+ public NoEntityFrameworkTests ( TestFixture fixture )
2319 {
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 ;
2921 }
3022
3123 [ Fact ]
3224 public async Task Can_Get_TodoItems ( )
3325 {
3426 // arrange
35- _context . TodoItems . Add ( new TodoItem ( ) ) ;
36- _context . SaveChanges ( ) ;
27+ _fixture . Context . TodoItems . Add ( new TodoItem ( ) ) ;
28+ _fixture . Context . SaveChanges ( ) ;
3729
38- var client = _server . CreateClient ( ) ;
30+ var client = _fixture . Server . CreateClient ( ) ;
3931
4032 var httpMethod = new HttpMethod ( "GET" ) ;
4133 var route = $ "/api/v1/custom-todo-items";
@@ -45,7 +37,7 @@ public async Task Can_Get_TodoItems()
4537 // act
4638 var response = await client . SendAsync ( request ) ;
4739 var responseBody = await response . Content . ReadAsStringAsync ( ) ;
48- var deserializedBody = _server . GetService < IJsonApiDeSerializer > ( )
40+ var deserializedBody = _fixture . Server . GetService < IJsonApiDeSerializer > ( )
4941 . DeserializeList < TodoItem > ( responseBody ) ;
5042
5143 // assert
@@ -59,10 +51,10 @@ public async Task Can_Get_TodoItems_By_Id()
5951 {
6052 // arrange
6153 var todoItem = new TodoItem ( ) ;
62- _context . TodoItems . Add ( todoItem ) ;
63- _context . SaveChanges ( ) ;
54+ _fixture . Context . TodoItems . Add ( todoItem ) ;
55+ _fixture . Context . SaveChanges ( ) ;
6456
65- var client = _server . CreateClient ( ) ;
57+ var client = _fixture . Server . CreateClient ( ) ;
6658
6759 var httpMethod = new HttpMethod ( "GET" ) ;
6860 var route = $ "/api/v1/custom-todo-items/{ todoItem . Id } ";
@@ -72,7 +64,7 @@ public async Task Can_Get_TodoItems_By_Id()
7264 // act
7365 var response = await client . SendAsync ( request ) ;
7466 var responseBody = await response . Content . ReadAsStringAsync ( ) ;
75- var deserializedBody = ( TodoItem ) _server . GetService < IJsonApiDeSerializer > ( )
67+ var deserializedBody = ( TodoItem ) _fixture . Server . GetService < IJsonApiDeSerializer > ( )
7668 . Deserialize ( responseBody ) ;
7769
7870 // assert
@@ -86,7 +78,7 @@ public async Task Can_Create_TodoItems()
8678 {
8779 // arrange
8880 var description = Guid . NewGuid ( ) . ToString ( ) ;
89- var client = _server . CreateClient ( ) ;
81+ var client = _fixture . Server . CreateClient ( ) ;
9082 var httpMethod = new HttpMethod ( "POST" ) ;
9183 var route = $ "/api/v1/custom-todo-items/";
9284 var content = new
@@ -109,7 +101,7 @@ public async Task Can_Create_TodoItems()
109101 // act
110102 var response = await client . SendAsync ( request ) ;
111103 var responseBody = await response . Content . ReadAsStringAsync ( ) ;
112- var deserializedBody = ( TodoItem ) _server . GetService < IJsonApiDeSerializer > ( )
104+ var deserializedBody = ( TodoItem ) _fixture . Server . GetService < IJsonApiDeSerializer > ( )
113105 . Deserialize ( responseBody ) ;
114106
115107 // assert
0 commit comments