Browse Source

Add missing ClientResponse Coroutines extensions

This commit adds awaitBodilessEntity() and
createExceptionAndAwait() missing ClientResponse
Coroutines extensions.

Closes gh-25866
pull/25876/head
Sébastien Deleuze 4 years ago
parent
commit
e899397438
  1. 20
      spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensions.kt
  2. 20
      spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensionsTests.kt

20
spring-webflux/src/main/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensions.kt

@ -164,3 +164,23 @@ suspend inline fun <reified T : Any> ClientResponse.awaitEntityList(): ResponseE @@ -164,3 +164,23 @@ suspend inline fun <reified T : Any> ClientResponse.awaitEntityList(): ResponseE
*/
suspend fun <T : Any> ClientResponse.awaitEntityList(clazz: KClass<T>): ResponseEntity<List<T>> =
toEntityList(clazz.java).awaitSingle()
/**
* Coroutines variant of [ClientResponse.toBodilessEntity].
*
* @author Sebastien Deleuze
* @since 5.3
*/
suspend fun ClientResponse.awaitBodilessEntity(): ResponseEntity<Void> =
toBodilessEntity().awaitSingle()
/**
* Coroutines variant of [ClientResponse.createException].
*
* @author Sebastien Deleuze
* @since 5.3
*/
suspend fun ClientResponse.createExceptionAndAwait(): WebClientResponseException =
createException().awaitSingle()

20
spring-webflux/src/test/kotlin/org/springframework/web/reactive/function/client/ClientResponseExtensionsTests.kt

@ -149,5 +149,25 @@ class ClientResponseExtensionsTests { @@ -149,5 +149,25 @@ class ClientResponseExtensionsTests {
}
}
@Test
fun awaitBodilessEntity() {
val response = mockk<ClientResponse>()
val entity = mockk<ResponseEntity<Void>>()
every { response.toBodilessEntity() } returns Mono.just(entity)
runBlocking {
assertThat(response.awaitBodilessEntity()).isEqualTo(entity)
}
}
@Test
fun createExceptionAndAwait() {
val response = mockk<ClientResponse>()
val exception = mockk<WebClientResponseException>()
every { response.createException() } returns Mono.just(exception)
runBlocking {
assertThat(response.createExceptionAndAwait()).isEqualTo(exception)
}
}
class Foo
}

Loading…
Cancel
Save