12
12
13
13
namespace Codit . IntegrationTest
14
14
{
15
+ [ Collection ( "TestServer" ) ]
15
16
public class CustomizationTest
16
17
{
17
- private readonly HttpClient _httpClient ;
18
- public CustomizationTest ( )
19
- {
20
- if ( _httpClient != null ) return ;
21
- var srv = new TestServer ( new WebHostBuilder ( )
22
- . UseEnvironment ( "Development" )
23
- . UseStartup < Startup > ( ) ) ;
18
+ TestServerFixture fixture ;
24
19
25
- _httpClient = srv . CreateClient ( ) ;
20
+ public CustomizationTest ( TestServerFixture fixture )
21
+ {
22
+ this . fixture = fixture ;
26
23
}
27
24
28
25
[ Fact ]
@@ -31,7 +28,7 @@ public async Task GetCustomizations_Ok_TestAsync()
31
28
//Arrange
32
29
var request = new HttpRequestMessage ( HttpMethod . Get , "/codito/v1/customization" ) ;
33
30
//Act
34
- var response = await _httpClient . SendAsync ( request ) ;
31
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
35
32
//Assert
36
33
response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
37
34
}
@@ -43,7 +40,7 @@ public async Task GetSingleCustomization_Ok_TestAsync()
43
40
int id = 1 ;
44
41
var request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
45
42
//Act
46
- var response = await _httpClient . SendAsync ( request ) ;
43
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
47
44
//Assert
48
45
response . StatusCode . Should ( ) . Be ( HttpStatusCode . OK ) ;
49
46
}
@@ -56,7 +53,7 @@ public async Task GetSingleCustomiation_NotFound_TestAsync()
56
53
int id = - 1 ;
57
54
var request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
58
55
//Act
59
- var response = await _httpClient . SendAsync ( request ) ;
56
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
60
57
//Assert
61
58
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NotFound ) ;
62
59
}
@@ -74,7 +71,7 @@ public async Task CreateNewCustomization_Created_TestAsync()
74
71
} ;
75
72
var request = TestExtensions . GetJsonRequest ( customization , "POST" , $ "/codito/v1/customization/") ;
76
73
//Act
77
- var response = await _httpClient . SendAsync ( request ) ;
74
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
78
75
//Assert
79
76
response . StatusCode . Should ( ) . Be ( HttpStatusCode . Created ) ;
80
77
}
@@ -91,39 +88,39 @@ public async Task CreateNewCustomization_BadRequest_TestAsync()
91
88
} ;
92
89
var request = TestExtensions . GetJsonRequest ( newCustomization , "POST" , "/codito/v1/customization/" ) ;
93
90
//Act
94
- var response = await _httpClient . SendAsync ( request ) ;
91
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
95
92
//Assert
96
93
response . StatusCode . Should ( ) . Be ( HttpStatusCode . BadRequest ) ;
97
94
98
95
}
99
96
100
97
[ Fact ]
101
- public async Task DeleteCustomization_NoContent_TestAsync ( )
98
+ public async Task DeleteCustomization_NotFound_TestAsync ( )
102
99
{
103
100
//Arrange
104
101
int id = - 1 ;
105
102
var request = new HttpRequestMessage ( HttpMethod . Delete , $ "/codito/v1/customization/{ id } ") ;
106
103
//Act
107
- var response = await _httpClient . SendAsync ( request ) ;
104
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
108
105
//Assert
109
106
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NotFound ) ;
110
107
111
108
}
112
109
113
110
[ Fact ]
114
- public async Task DeleteCustomization_NotFound_TestAsync ( )
111
+ public async Task DeleteCustomization_NoContent_TestAsync ( )
115
112
{
116
113
//Arrange
117
- int id = 1 ;
114
+ int id = 3 ;
118
115
var request = new HttpRequestMessage ( HttpMethod . Delete , $ "/codito/v1/customization/{ id } ") ;
119
116
//Act
120
- var response = await _httpClient . SendAsync ( request ) ;
117
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
121
118
122
119
//Assert
123
120
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NoContent ) ;
124
121
125
122
request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
126
- response = await _httpClient . SendAsync ( request ) ;
123
+ response = await fixture . _httpClient . SendAsync ( request ) ;
127
124
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NotFound ) ;
128
125
}
129
126
@@ -134,17 +131,17 @@ public async Task SellCustomization_Accepted_TestAsync()
134
131
int id = 1 ;
135
132
136
133
var request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
137
- var response = await _httpClient . SendAsync ( request ) ;
134
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
138
135
var actualDto = JsonConvert . DeserializeObject < CustomizationDto > ( await response . Content . ReadAsStringAsync ( ) ) ;
139
136
140
137
request = new HttpRequestMessage ( HttpMethod . Post , $ "/codito/v1/customization/{ id } /sale") ;
141
138
//Act
142
- response = await _httpClient . SendAsync ( request ) ;
139
+ response = await fixture . _httpClient . SendAsync ( request ) ;
143
140
//Assert
144
141
response . StatusCode . Should ( ) . Be ( HttpStatusCode . Accepted ) ;
145
142
// (Inventory must be decremented, number of sales incremented.
146
143
request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
147
- response = await _httpClient . SendAsync ( request ) ;
144
+ response = await fixture . _httpClient . SendAsync ( request ) ;
148
145
var updatedDto = JsonConvert . DeserializeObject < CustomizationDto > ( await response . Content . ReadAsStringAsync ( ) ) ;
149
146
150
147
updatedDto . InventoryLevel . Should ( ) . Be ( actualDto . InventoryLevel - 1 ) ;
@@ -159,7 +156,7 @@ public async Task SellCustomization_NotFound_TestAsync()
159
156
int id = - 1 ;
160
157
var request = new HttpRequestMessage ( HttpMethod . Post , $ "/codito/v1/customization/{ id } /sale") ;
161
158
//Act
162
- var response = await _httpClient . SendAsync ( request ) ;
159
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
163
160
//Assert
164
161
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NotFound ) ;
165
162
}
@@ -176,7 +173,7 @@ public async Task SellCustomization_SoldOutBadRequest_TestAsync()
176
173
} ;
177
174
178
175
var request = TestExtensions . GetJsonRequest ( newCustomization , "POST" , "/codito/v1/customization/" ) ;
179
- var response = await _httpClient . SendAsync ( request ) ;
176
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
180
177
response . StatusCode . Should ( ) . Be ( HttpStatusCode . Created ) ;
181
178
//(Get Id of this new customization)
182
179
var newDto = JsonConvert . DeserializeObject < CustomizationDto > ( await response . Content . ReadAsStringAsync ( ) ) ;
@@ -185,7 +182,7 @@ public async Task SellCustomization_SoldOutBadRequest_TestAsync()
185
182
request = new HttpRequestMessage ( HttpMethod . Post , $ "/codito/v1/customization/{ id } /sale") ;
186
183
187
184
//Act
188
- response = await _httpClient . SendAsync ( request ) ;
185
+ response = await fixture . _httpClient . SendAsync ( request ) ;
189
186
190
187
//Assert
191
188
response . StatusCode . Should ( ) . Be ( HttpStatusCode . BadRequest ) ;
@@ -204,7 +201,7 @@ public async Task UpdateCustomizationIncremental_NotFound_TestAsync()
204
201
var request = TestExtensions . GetJsonRequest ( customization , "PATCH" , $ "/codito/v1/customization/{ id } ") ;
205
202
206
203
// Act
207
- var response = await _httpClient . SendAsync ( request ) ;
204
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
208
205
209
206
//Assert
210
207
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NotFound ) ;
@@ -221,19 +218,19 @@ public async Task UpdateCustomizationIncremental_NoContent_TestAsync()
221
218
} ;
222
219
223
220
var request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
224
- var response = await _httpClient . SendAsync ( request ) ;
221
+ var response = await fixture . _httpClient . SendAsync ( request ) ;
225
222
var actualDto = JsonConvert . DeserializeObject < CustomizationDto > ( await response . Content . ReadAsStringAsync ( ) ) ;
226
223
request = TestExtensions . GetJsonRequest ( customization , "PATCH" , $ "/codito/v1/customization/{ id } ") ;
227
224
228
225
//actualDto.Should().BeNull();
229
226
230
227
// Act
231
- response = await _httpClient . SendAsync ( request ) ;
228
+ response = await fixture . _httpClient . SendAsync ( request ) ;
232
229
233
230
//Assert
234
231
response . StatusCode . Should ( ) . Be ( HttpStatusCode . NoContent ) ;
235
232
request = new HttpRequestMessage ( HttpMethod . Get , $ "/codito/v1/customization/{ id } ") ;
236
- response = await _httpClient . SendAsync ( request ) ;
233
+ response = await fixture . _httpClient . SendAsync ( request ) ;
237
234
var updatedDto = JsonConvert . DeserializeObject < CustomizationDto > ( await response . Content . ReadAsStringAsync ( ) ) ;
238
235
updatedDto . Id . Should ( ) . Be ( actualDto . Id ) ;
239
236
0 commit comments