22
22
import java .util .Optional ;
23
23
24
24
import jakarta .servlet .http .Part ;
25
- import org .assertj .core .api .InstanceOfAssertFactories ;
26
25
import org .junit .jupiter .api .BeforeEach ;
27
26
import org .junit .jupiter .api .Test ;
28
27
54
53
import static org .assertj .core .api .Assertions .assertThat ;
55
54
import static org .assertj .core .api .Assertions .assertThatExceptionOfType ;
56
55
import static org .assertj .core .api .Assertions .assertThatThrownBy ;
56
+ import static org .assertj .core .api .InstanceOfAssertFactories .LIST ;
57
+ import static org .assertj .core .api .InstanceOfAssertFactories .array ;
58
+ import static org .assertj .core .api .InstanceOfAssertFactories .optional ;
59
+ import static org .assertj .core .api .InstanceOfAssertFactories .type ;
57
60
import static org .mockito .BDDMockito .given ;
58
61
import static org .mockito .Mockito .mock ;
59
62
import static org .springframework .web .testfixture .method .MvcAnnotationPredicates .requestParam ;
@@ -84,6 +87,7 @@ void setup() {
84
87
85
88
// Expose request to the current thread (for SpEL expressions)
86
89
RequestContextHolder .setRequestAttributes (webRequest );
90
+ context .close ();
87
91
}
88
92
89
93
@ Test
@@ -169,9 +173,7 @@ void resolveString() throws Exception {
169
173
170
174
MethodParameter param = this .testMethod .annot (requestParam ().notRequired ("bar" )).arg (String .class );
171
175
Object result = resolver .resolveArgument (param , null , webRequest , null );
172
- boolean condition = result instanceof String ;
173
- assertThat (condition ).isTrue ();
174
- assertThat (result ).as ("Invalid result" ).isEqualTo (expected );
176
+ assertThat (result ).isEqualTo (expected );
175
177
}
176
178
177
179
@ Test
@@ -181,9 +183,7 @@ void resolveStringArray() throws Exception {
181
183
182
184
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (String [].class );
183
185
Object result = resolver .resolveArgument (param , null , webRequest , null );
184
- boolean condition = result instanceof String [];
185
- assertThat (condition ).isTrue ();
186
- assertThat ((String []) result ).as ("Invalid result" ).isEqualTo (expected );
186
+ assertThat (result ).asInstanceOf (array (String [].class )).containsExactly (expected );
187
187
}
188
188
189
189
@ Test // gh-32577
@@ -194,9 +194,7 @@ void resolveStringArrayWithEmptyArraySuffix() throws Exception {
194
194
195
195
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (String [].class );
196
196
Object result = resolver .resolveArgument (param , null , webRequest , null );
197
- boolean condition = result instanceof String [];
198
- assertThat (condition ).isTrue ();
199
- assertThat ((String []) result ).isEqualTo (expected );
197
+ assertThat (result ).asInstanceOf (array (String [].class )).containsExactly (expected );
200
198
}
201
199
202
200
@ Test
@@ -208,9 +206,7 @@ void resolveMultipartFile() throws Exception {
208
206
209
207
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (MultipartFile .class );
210
208
Object result = resolver .resolveArgument (param , null , webRequest , null );
211
- boolean condition = result instanceof MultipartFile ;
212
- assertThat (condition ).isTrue ();
213
- assertThat (result ).as ("Invalid result" ).isEqualTo (expected );
209
+ assertThat (result ).asInstanceOf (type (MultipartFile .class )).isEqualTo (expected );
214
210
}
215
211
216
212
@ Test
@@ -226,9 +222,7 @@ void resolveMultipartFileList() throws Exception {
226
222
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (List .class , MultipartFile .class );
227
223
Object result = resolver .resolveArgument (param , null , webRequest , null );
228
224
229
- boolean condition = result instanceof List ;
230
- assertThat (condition ).isTrue ();
231
- assertThat (result ).isEqualTo (Arrays .asList (expected1 , expected2 ));
225
+ assertThat (result ).asInstanceOf (LIST ).containsExactly (expected1 , expected2 );
232
226
}
233
227
234
228
@ Test
@@ -255,12 +249,7 @@ void resolveMultipartFileArray() throws Exception {
255
249
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (MultipartFile [].class );
256
250
Object result = resolver .resolveArgument (param , null , webRequest , null );
257
251
258
- boolean condition = result instanceof MultipartFile [];
259
- assertThat (condition ).isTrue ();
260
- MultipartFile [] parts = (MultipartFile []) result ;
261
- assertThat (parts ).hasSize (2 );
262
- assertThat (expected1 ).isEqualTo (parts [0 ]);
263
- assertThat (expected2 ).isEqualTo (parts [1 ]);
252
+ assertThat (result ).asInstanceOf (array (MultipartFile [].class )).containsExactly (expected1 , expected2 );
264
253
}
265
254
266
255
@ Test
@@ -286,9 +275,7 @@ void resolvePart() throws Exception {
286
275
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (Part .class );
287
276
Object result = resolver .resolveArgument (param , null , webRequest , null );
288
277
289
- boolean condition = result instanceof Part ;
290
- assertThat (condition ).isTrue ();
291
- assertThat (result ).as ("Invalid result" ).isEqualTo (expected );
278
+ assertThat (result ).asInstanceOf (type (Part .class )).isEqualTo (expected );
292
279
}
293
280
294
281
@ Test
@@ -306,9 +293,7 @@ void resolvePartList() throws Exception {
306
293
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (List .class , Part .class );
307
294
Object result = resolver .resolveArgument (param , null , webRequest , null );
308
295
309
- boolean condition = result instanceof List ;
310
- assertThat (condition ).isTrue ();
311
- assertThat (result ).isEqualTo (Arrays .asList (expected1 , expected2 ));
296
+ assertThat (result ).asInstanceOf (LIST ).containsExactly (expected1 , expected2 );
312
297
}
313
298
314
299
@ Test
@@ -339,12 +324,7 @@ void resolvePartArray() throws Exception {
339
324
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (Part [].class );
340
325
Object result = resolver .resolveArgument (param , null , webRequest , null );
341
326
342
- boolean condition = result instanceof Part [];
343
- assertThat (condition ).isTrue ();
344
- Part [] parts = (Part []) result ;
345
- assertThat (parts ).hasSize (2 );
346
- assertThat (expected1 ).isEqualTo (parts [0 ]);
347
- assertThat (expected2 ).isEqualTo (parts [1 ]);
327
+ assertThat (result ).asInstanceOf (array (Part [].class )).containsExactly (expected1 , expected2 );
348
328
}
349
329
350
330
@ Test
@@ -369,9 +349,7 @@ void resolveMultipartFileNotAnnot() throws Exception {
369
349
370
350
MethodParameter param = this .testMethod .annotNotPresent ().arg (MultipartFile .class );
371
351
Object result = resolver .resolveArgument (param , null , webRequest , null );
372
- boolean condition = result instanceof MultipartFile ;
373
- assertThat (condition ).isTrue ();
374
- assertThat (result ).as ("Invalid result" ).isEqualTo (expected );
352
+ assertThat (result ).asInstanceOf (type (MultipartFile .class )).isEqualTo (expected );
375
353
}
376
354
377
355
@ Test
@@ -387,9 +365,7 @@ void resolveMultipartFileListNotannot() throws Exception {
387
365
.annotNotPresent (RequestParam .class ).arg (List .class , MultipartFile .class );
388
366
389
367
Object result = resolver .resolveArgument (param , null , webRequest , null );
390
- boolean condition = result instanceof List ;
391
- assertThat (condition ).isTrue ();
392
- assertThat (result ).isEqualTo (Arrays .asList (expected1 , expected2 ));
368
+ assertThat (result ).asInstanceOf (LIST ).containsExactly (expected1 , expected2 );
393
369
}
394
370
395
371
@ Test
@@ -411,8 +387,7 @@ public void isMultipartRequestHttpPut() throws Exception {
411
387
.annotNotPresent (RequestParam .class ).arg (List .class , MultipartFile .class );
412
388
413
389
Object actual = resolver .resolveArgument (param , null , webRequest , null );
414
- assertThat (actual ).isInstanceOf (List .class ).asInstanceOf (InstanceOfAssertFactories .LIST )
415
- .containsExactly (expected );
390
+ assertThat (actual ).asInstanceOf (LIST ).containsExactly (expected );
416
391
}
417
392
418
393
@ Test
@@ -443,18 +418,14 @@ void resolvePartNotAnnot() throws Exception {
443
418
444
419
MethodParameter param = this .testMethod .annotNotPresent (RequestParam .class ).arg (Part .class );
445
420
Object result = resolver .resolveArgument (param , null , webRequest , null );
446
- boolean condition = result instanceof Part ;
447
- assertThat (condition ).isTrue ();
448
- assertThat (result ).as ("Invalid result" ).isEqualTo (expected );
421
+ assertThat (result ).asInstanceOf (type (Part .class )).isEqualTo (expected );
449
422
}
450
423
451
424
@ Test
452
425
void resolveDefaultValue () throws Exception {
453
426
MethodParameter param = this .testMethod .annot (requestParam ().notRequired ("bar" )).arg (String .class );
454
427
Object result = resolver .resolveArgument (param , null , webRequest , null );
455
- boolean condition = result instanceof String ;
456
- assertThat (condition ).isTrue ();
457
- assertThat (result ).as ("Invalid result" ).isEqualTo ("bar" );
428
+ assertThat (result ).isEqualTo ("bar" );
458
429
}
459
430
460
431
@ Test
@@ -529,8 +500,6 @@ void resolveSimpleTypeParam() throws Exception {
529
500
MethodParameter param = this .testMethod .annotNotPresent (RequestParam .class ).arg (String .class );
530
501
Object result = resolver .resolveArgument (param , null , webRequest , null );
531
502
532
- boolean condition = result instanceof String ;
533
- assertThat (condition ).isTrue ();
534
503
assertThat (result ).isEqualTo ("plainValue" );
535
504
}
536
505
@@ -678,9 +647,7 @@ void resolveOptionalMultipartFile() throws Exception {
678
647
MethodParameter param = this .testMethod .annotPresent (RequestParam .class ).arg (Optional .class , MultipartFile .class );
679
648
Object result = resolver .resolveArgument (param , null , webRequest , binderFactory );
680
649
681
- boolean condition = result instanceof Optional ;
682
- assertThat (condition ).isTrue ();
683
- assertThat (((Optional <?>) result ).get ()).as ("Invalid result" ).isEqualTo (expected );
650
+ assertThat (result ).asInstanceOf (optional (MultipartFile .class )).contains (expected );
684
651
}
685
652
686
653
@ Test
@@ -724,8 +691,7 @@ void resolveNameFromSystemPropertyThroughPlaceholder() throws Exception {
724
691
try {
725
692
MethodParameter param = this .testMethod .annot (requestParam ().name ("${systemProperty}" )).arg (Integer .class );
726
693
Object result = resolver .resolveArgument (param , null , webRequest , binderFactory );
727
- boolean condition = result instanceof Integer ;
728
- assertThat (condition ).isTrue ();
694
+ assertThat (result ).isInstanceOf (Integer .class );
729
695
}
730
696
finally {
731
697
System .clearProperty ("systemProperty" );
0 commit comments