From e8993974382587fc20083a7dd79a79b911fed74e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Deleuze?= Date: Wed, 7 Oct 2020 10:55:18 +0200 Subject: [PATCH] Add missing ClientResponse Coroutines extensions This commit adds awaitBodilessEntity() and createExceptionAndAwait() missing ClientResponse Coroutines extensions. Closes gh-25866 --- .../client/ClientResponseExtensions.kt | 20 +++++++++++++++++++ .../client/ClientResponseExtensionsTests.kt | 20 +++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensions.kt b/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensions.kt index c34d0422ae..5f20f4b3e4 100644 --- a/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensions.kt +++ b/spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensions.kt @@ -164,3 +164,23 @@ suspend inline fun ClientResponse.awaitEntityList(): ResponseE */ suspend fun ClientResponse.awaitEntityList(clazz: KClass): ResponseEntity> = toEntityList(clazz.java).awaitSingle() + +/** + * Coroutines variant of [ClientResponse.toBodilessEntity]. + * + * @author Sebastien Deleuze + * @since 5.3 + */ +suspend fun ClientResponse.awaitBodilessEntity(): ResponseEntity = + toBodilessEntity().awaitSingle() + +/** + * Coroutines variant of [ClientResponse.createException]. + * + * @author Sebastien Deleuze + * @since 5.3 + */ +suspend fun ClientResponse.createExceptionAndAwait(): WebClientResponseException = + createException().awaitSingle() + + diff --git a/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensionsTests.kt b/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensionsTests.kt index 6f2e8f2023..1819e1dd6e 100644 --- a/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensionsTests.kt +++ b/spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensionsTests.kt @@ -149,5 +149,25 @@ class ClientResponseExtensionsTests { } } + @Test + fun awaitBodilessEntity() { + val response = mockk() + val entity = mockk>() + every { response.toBodilessEntity() } returns Mono.just(entity) + runBlocking { + assertThat(response.awaitBodilessEntity()).isEqualTo(entity) + } + } + + @Test + fun createExceptionAndAwait() { + val response = mockk() + val exception = mockk() + every { response.createException() } returns Mono.just(exception) + runBlocking { + assertThat(response.createExceptionAndAwait()).isEqualTo(exception) + } + } + class Foo }