@@ -300,29 +300,31 @@ public <T> FluxExchangeResult<T> decodeBody(ResolvableType elementType) {
300
300
}
301
301
302
302
public EntityExchangeResult <Void > consumeEmpty () {
303
- DataBuffer buffer = this .response .body (toDataBuffers ()).blockFirst (getTimeout ());
304
- assertTrue ("Expected empty body" , buffer == null );
303
+ assertWithDiagnostics (() -> {
304
+ DataBuffer buffer = this .response .body (toDataBuffers ()).blockFirst (getTimeout ());
305
+ assertTrue ("Expected empty body" , buffer == null );
306
+ });
305
307
return new EntityExchangeResult <>(this , null );
306
308
}
307
309
}
308
310
309
311
private class DefaultResponseSpec implements ResponseSpec {
310
312
311
- private final UndecodedExchangeResult exchangeResult ;
313
+ private final UndecodedExchangeResult result ;
312
314
313
315
314
316
public DefaultResponseSpec (ClientHttpRequest httpRequest , ClientResponse response ) {
315
- this .exchangeResult = new UndecodedExchangeResult (httpRequest , response );
317
+ this .result = new UndecodedExchangeResult (httpRequest , response );
316
318
}
317
319
318
320
@ Override
319
321
public StatusAssertions expectStatus () {
320
- return new StatusAssertions (this .exchangeResult , this );
322
+ return new StatusAssertions (this .result , this );
321
323
}
322
324
323
325
@ Override
324
326
public HeaderAssertions expectHeader () {
325
- return new HeaderAssertions (this .exchangeResult , this );
327
+ return new HeaderAssertions (this .result , this );
326
328
}
327
329
328
330
@ Override
@@ -332,43 +334,44 @@ public TypeBodySpec expectBody(Class<?> elementType) {
332
334
333
335
@ Override
334
336
public TypeBodySpec expectBody (ResolvableType elementType ) {
335
- return new DefaultTypeBodySpec (this .exchangeResult , elementType );
337
+ return new DefaultTypeBodySpec (this .result , elementType );
336
338
}
337
339
338
340
@ Override
339
341
public BodySpec expectBody () {
340
- return new DefaultBodySpec (this .exchangeResult );
342
+ return new DefaultBodySpec (this .result );
341
343
}
342
344
343
345
@ Override
344
346
public ResponseSpec consumeWith (Consumer <ExchangeResult > consumer ) {
345
- consumer .accept (this .exchangeResult );
346
- return this ;
347
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
348
+ consumer .accept (this .result );
349
+ return this ;
350
+ });
347
351
}
348
352
349
353
@ Override
350
354
public ExchangeResult returnResult () {
351
- return this .exchangeResult ;
355
+ return this .result ;
352
356
}
353
357
}
354
358
355
359
private class DefaultTypeBodySpec implements TypeBodySpec {
356
360
357
- private final UndecodedExchangeResult exchangeResult ;
361
+ private final UndecodedExchangeResult result ;
358
362
359
363
private final ResolvableType elementType ;
360
364
361
365
362
366
public DefaultTypeBodySpec (UndecodedExchangeResult result , ResolvableType elementType ) {
363
- this .exchangeResult = result ;
367
+ this .result = result ;
364
368
this .elementType = elementType ;
365
369
}
366
370
367
371
368
372
@ Override
369
373
public SingleValueBodySpec value () {
370
- EntityExchangeResult <?> completed = this .exchangeResult .consumeSingle (this .elementType );
371
- return new DefaultSingleValueBodySpec (completed );
374
+ return new DefaultSingleValueBodySpec (this .result .consumeSingle (this .elementType ));
372
375
}
373
376
374
377
@ Override
@@ -378,52 +381,55 @@ public ListBodySpec list() {
378
381
379
382
@ Override
380
383
public ListBodySpec list (int count ) {
381
- EntityExchangeResult <List <?>> completed = this .exchangeResult .consumeList (this .elementType , count );
382
- return new DefaultListBodySpec (completed );
384
+ return new DefaultListBodySpec (this .result .consumeList (this .elementType , count ));
383
385
}
384
386
385
387
@ Override
386
388
public <T > FluxExchangeResult <T > returnResult () {
387
- return this .exchangeResult .decodeBody (this .elementType );
389
+ return this .result .decodeBody (this .elementType );
388
390
}
389
391
}
390
392
391
393
private class DefaultSingleValueBodySpec implements SingleValueBodySpec {
392
394
393
- private final EntityExchangeResult <?> exchangeResult ;
395
+ private final EntityExchangeResult <?> result ;
394
396
395
397
396
398
public DefaultSingleValueBodySpec (EntityExchangeResult <?> result ) {
397
- this .exchangeResult = result ;
399
+ this .result = result ;
398
400
}
399
401
400
402
401
403
@ Override
402
404
public <T > EntityExchangeResult <T > isEqualTo (T expected ) {
403
- assertEquals ("Response body" , expected , this .exchangeResult .getResponseBody ());
404
- return returnResult ();
405
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
406
+ assertEquals ("Response body" , expected , this .result .getResponseBody ());
407
+ return returnResult ();
408
+ });
405
409
}
406
410
407
411
@ Override
408
412
public <T > EntityExchangeResult <T > returnResult () {
409
- return new EntityExchangeResult <>(this .exchangeResult , (T ) this .exchangeResult .getResponseBody ());
413
+ return new EntityExchangeResult <>(this .result , (T ) this .result .getResponseBody ());
410
414
}
411
415
}
412
416
413
417
private class DefaultListBodySpec implements ListBodySpec {
414
418
415
- private final EntityExchangeResult <List <?>> exchangeResult ;
419
+ private final EntityExchangeResult <List <?>> result ;
416
420
417
421
418
422
public DefaultListBodySpec (EntityExchangeResult <List <?>> result ) {
419
- this .exchangeResult = result ;
423
+ this .result = result ;
420
424
}
421
425
422
426
423
427
@ Override
424
428
public <T > EntityExchangeResult <List <T >> isEqualTo (List <T > expected ) {
425
- assertEquals ("Response body" , expected , this .exchangeResult .getResponseBody ());
426
- return returnResult ();
429
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
430
+ assertEquals ("Response body" , expected , this .result .getResponseBody ());
431
+ return returnResult ();
432
+ });
427
433
}
428
434
429
435
@ Override
@@ -433,24 +439,28 @@ public ListBodySpec hasSize(int size) {
433
439
434
440
@ Override
435
441
public ListBodySpec contains (Object ... elements ) {
436
- List <Object > elementList = Arrays .asList (elements );
437
- String message = "Response body does not contain " + elementList ;
438
- assertTrue (message , this .exchangeResult .getResponseBody ().containsAll (elementList ));
442
+ this .result .assertWithDiagnostics (() -> {
443
+ List <Object > elementList = Arrays .asList (elements );
444
+ String message = "Response body does not contain " + elementList ;
445
+ assertTrue (message , this .result .getResponseBody ().containsAll (elementList ));
446
+ });
439
447
return this ;
440
448
}
441
449
442
450
@ Override
443
451
public ListBodySpec doesNotContain (Object ... elements ) {
444
- List <Object > elementList = Arrays .asList (elements );
445
- String message = "Response body should have contained " + elementList ;
446
- assertTrue (message , !this .exchangeResult .getResponseBody ().containsAll (Arrays .asList (elements )));
452
+ this .result .assertWithDiagnostics (() -> {
453
+ List <Object > elementList = Arrays .asList (elements );
454
+ String message = "Response body should have contained " + elementList ;
455
+ assertTrue (message , !this .result .getResponseBody ().containsAll (Arrays .asList (elements )));
456
+ });
447
457
return this ;
448
458
}
449
459
450
460
@ Override
451
461
@ SuppressWarnings ("unchecked" )
452
462
public <T > EntityExchangeResult <List <T >> returnResult () {
453
- return new EntityExchangeResult <>(this .exchangeResult , (List <T >) this .exchangeResult .getResponseBody ());
463
+ return new EntityExchangeResult <>(this .result , (List <T >) this .result .getResponseBody ());
454
464
}
455
465
}
456
466
@@ -476,61 +486,70 @@ public MapBodySpec map(Class<?> keyType, Class<?> valueType) {
476
486
477
487
@ Override
478
488
public MapBodySpec map (ResolvableType keyType , ResolvableType valueType ) {
479
- EntityExchangeResult <Map <?, ?>> completed = this .exchangeResult .consumeMap (keyType , valueType );
480
- return new DefaultMapBodySpec (completed );
489
+ return new DefaultMapBodySpec (this .exchangeResult .consumeMap (keyType , valueType ));
481
490
}
482
491
}
483
492
484
493
private class DefaultMapBodySpec implements MapBodySpec {
485
494
486
- private final EntityExchangeResult <Map <?, ?>> exchangeResult ;
495
+ private final EntityExchangeResult <Map <?, ?>> result ;
487
496
488
497
489
498
public DefaultMapBodySpec (EntityExchangeResult <Map <?, ?>> result ) {
490
- this .exchangeResult = result ;
499
+ this .result = result ;
491
500
}
492
501
493
502
494
503
private Map <?, ?> getBody () {
495
- return this .exchangeResult .getResponseBody ();
504
+ return this .result .getResponseBody ();
496
505
}
497
506
498
507
@ Override
499
508
public <K , V > EntityExchangeResult <Map <K , V >> isEqualTo (Map <K , V > expected ) {
500
- assertEquals ("Response body map" , expected , getBody ());
501
- return returnResult ();
509
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
510
+ assertEquals ("Response body map" , expected , getBody ());
511
+ return returnResult ();
512
+ });
502
513
}
503
514
504
515
@ Override
505
516
public MapBodySpec hasSize (int size ) {
506
- assertEquals ("Response body map size" , size , getBody ().size ());
507
- return this ;
517
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
518
+ assertEquals ("Response body map size" , size , getBody ().size ());
519
+ return this ;
520
+ });
508
521
}
509
522
510
523
@ Override
511
524
public MapBodySpec contains (Object key , Object value ) {
512
- assertEquals ("Response body map value for key " + key , value , getBody ().get (key ));
513
- return this ;
525
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
526
+ assertEquals ("Response body map value for key " + key , value , getBody ().get (key ));
527
+ return this ;
528
+ });
514
529
}
515
530
516
531
@ Override
517
532
public MapBodySpec containsKeys (Object ... keys ) {
518
- List <?> missing = Arrays .stream (keys ).filter (k -> !getBody ().containsKey (k )).collect (toList ());
519
- assertTrue ("Response body map does not contain keys " + missing , missing .isEmpty ());
520
- return this ;
533
+ return this .result .assertWithDiagnosticsAndReturn (() -> {
534
+ List <?> missing = Arrays .stream (keys ).filter (k -> !getBody ().containsKey (k )).collect (toList ());
535
+ assertTrue ("Response body map does not contain keys " + missing , missing .isEmpty ());
536
+ return this ;
537
+ });
521
538
}
522
539
523
540
@ Override
524
541
public MapBodySpec containsValues (Object ... values ) {
525
- List <?> missing = Arrays .stream (values ).filter (v -> !getBody ().containsValue (v )).collect (toList ());
526
- assertTrue ("Response body map does not contain values " + missing , missing .isEmpty ());
542
+ this .result .assertWithDiagnostics (() -> {
543
+ List <?> missing = Arrays .stream (values ).filter (v -> !getBody ().containsValue (v )).collect (toList ());
544
+ assertTrue ("Response body map does not contain values " + missing , missing .isEmpty ());
545
+ });
527
546
return this ;
528
547
}
529
548
530
549
@ Override
531
550
@ SuppressWarnings ("unchecked" )
532
551
public <K , V > EntityExchangeResult <Map <K , V >> returnResult () {
533
- return new EntityExchangeResult <>(this .exchangeResult , (Map <K , V >) getBody ());
552
+ return new EntityExchangeResult <>(this .result , (Map <K , V >) getBody ());
534
553
}
535
554
}
536
555
0 commit comments