|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2024 the original author or authors. |
|
|
|
* Copyright 2002-2025 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -19,9 +19,12 @@ package org.springframework.web.client |
|
|
|
import io.mockk.every |
|
|
|
import io.mockk.every |
|
|
|
import io.mockk.mockk |
|
|
|
import io.mockk.mockk |
|
|
|
import io.mockk.verify |
|
|
|
import io.mockk.verify |
|
|
|
|
|
|
|
import org.assertj.core.api.Assertions.assertThat |
|
|
|
import org.junit.jupiter.api.Test |
|
|
|
import org.junit.jupiter.api.Test |
|
|
|
import org.junit.jupiter.api.assertThrows |
|
|
|
import org.junit.jupiter.api.assertThrows |
|
|
|
import org.springframework.core.ParameterizedTypeReference |
|
|
|
import org.springframework.core.ParameterizedTypeReference |
|
|
|
|
|
|
|
import org.springframework.http.HttpRequest |
|
|
|
|
|
|
|
import org.springframework.web.client.RestClient.RequestHeadersSpec |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Mock object based tests for [RestClient] Kotlin extensions |
|
|
|
* Mock object based tests for [RestClient] Kotlin extensions |
|
|
|
@ -59,6 +62,24 @@ class RestClientExtensionsTests { |
|
|
|
assertThrows<NoSuchElementException> { responseSpec.requiredBody<Foo>() } |
|
|
|
assertThrows<NoSuchElementException> { responseSpec.requiredBody<Foo>() } |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
fun `RequestHeadersSpec#requiredExchange`() { |
|
|
|
|
|
|
|
val foo = Foo() |
|
|
|
|
|
|
|
every { requestBodySpec.exchange(any<RequestHeadersSpec.ExchangeFunction<Foo>>(), any()) } returns foo |
|
|
|
|
|
|
|
val exchangeFunction: (HttpRequest, RequestHeadersSpec.ConvertibleClientHttpResponse) -> Foo? = |
|
|
|
|
|
|
|
{ request, response -> foo } |
|
|
|
|
|
|
|
val value = requestBodySpec.requiredExchange(exchangeFunction) |
|
|
|
|
|
|
|
assertThat(value).isEqualTo(foo) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
fun `RequestHeadersSpec#requiredExchange with null response throws NoSuchElementException`() { |
|
|
|
|
|
|
|
every { requestBodySpec.exchange(any<RequestHeadersSpec.ExchangeFunction<Foo>>(), any()) } returns null |
|
|
|
|
|
|
|
val exchangeFunction: (HttpRequest, RequestHeadersSpec.ConvertibleClientHttpResponse) -> Foo? = |
|
|
|
|
|
|
|
{ request, response -> null } |
|
|
|
|
|
|
|
assertThrows<NoSuchElementException> { requestBodySpec.requiredExchange(exchangeFunction) } |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
fun `ResponseSpec#toEntity with reified type parameters`() { |
|
|
|
fun `ResponseSpec#toEntity with reified type parameters`() { |
|
|
|
responseSpec.toEntity<List<Foo>>() |
|
|
|
responseSpec.toEntity<List<Foo>>() |
|
|
|
|