diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java index cd87b9a861..0c8a13315f 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java @@ -16,6 +16,7 @@ package org.springframework.boot.web.client; +import java.time.Duration; import java.util.Collections; import java.util.Set; import java.util.function.Supplier; @@ -60,6 +61,7 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat * @author Stephane Nicoll * @author Phillip Webb * @author Andy Wilkinson + * @author Dmytro Nosan */ public class RestTemplateBuilderTests { @@ -390,7 +392,7 @@ public class RestTemplateBuilderTests { } @Test - public void customizerShouldBeAppliedInTheEnd() { + public void customizerShouldBeAppliedAtTheEnd() { ResponseErrorHandler errorHandler = mock(ResponseErrorHandler.class); ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory(); this.builder.interceptors(this.interceptor) @@ -439,7 +441,7 @@ public class RestTemplateBuilderTests { public void connectTimeoutCanBeConfiguredOnHttpComponentsRequestFactory() { ClientHttpRequestFactory requestFactory = this.builder .requestFactory(HttpComponentsClientHttpRequestFactory.class) - .setConnectTimeout(1234).build().getRequestFactory(); + .setConnectTimeout(Duration.ofMillis(1234)).build().getRequestFactory(); assertThat(((RequestConfig) ReflectionTestUtils.getField(requestFactory, "requestConfig")).getConnectTimeout()).isEqualTo(1234); } @@ -448,7 +450,7 @@ public class RestTemplateBuilderTests { public void readTimeoutCanBeConfiguredOnHttpComponentsRequestFactory() { ClientHttpRequestFactory requestFactory = this.builder .requestFactory(HttpComponentsClientHttpRequestFactory.class) - .setReadTimeout(1234).build().getRequestFactory(); + .setReadTimeout(Duration.ofMillis(1234)).build().getRequestFactory(); assertThat(((RequestConfig) ReflectionTestUtils.getField(requestFactory, "requestConfig")).getSocketTimeout()).isEqualTo(1234); } @@ -457,7 +459,7 @@ public class RestTemplateBuilderTests { public void connectTimeoutCanBeConfiguredOnSimpleRequestFactory() { ClientHttpRequestFactory requestFactory = this.builder .requestFactory(SimpleClientHttpRequestFactory.class) - .setConnectTimeout(1234).build().getRequestFactory(); + .setConnectTimeout(Duration.ofMillis(1234)).build().getRequestFactory(); assertThat(ReflectionTestUtils.getField(requestFactory, "connectTimeout")) .isEqualTo(1234); } @@ -465,8 +467,8 @@ public class RestTemplateBuilderTests { @Test public void readTimeoutCanBeConfiguredOnSimpleRequestFactory() { ClientHttpRequestFactory requestFactory = this.builder - .requestFactory(SimpleClientHttpRequestFactory.class).setReadTimeout(1234) - .build().getRequestFactory(); + .requestFactory(SimpleClientHttpRequestFactory.class) + .setReadTimeout(Duration.ofMillis(1234)).build().getRequestFactory(); assertThat(ReflectionTestUtils.getField(requestFactory, "readTimeout")) .isEqualTo(1234); } @@ -475,7 +477,7 @@ public class RestTemplateBuilderTests { public void connectTimeoutCanBeConfiguredOnOkHttp3RequestFactory() { ClientHttpRequestFactory requestFactory = this.builder .requestFactory(OkHttp3ClientHttpRequestFactory.class) - .setConnectTimeout(1234).build().getRequestFactory(); + .setConnectTimeout(Duration.ofMillis(1234)).build().getRequestFactory(); assertThat(ReflectionTestUtils.getField( ReflectionTestUtils.getField(requestFactory, "client"), "connectTimeout")) .isEqualTo(1234); @@ -485,7 +487,7 @@ public class RestTemplateBuilderTests { public void readTimeoutCanBeConfiguredOnOkHttp3RequestFactory() { ClientHttpRequestFactory requestFactory = this.builder .requestFactory(OkHttp3ClientHttpRequestFactory.class) - .setReadTimeout(1234).build().getRequestFactory(); + .setReadTimeout(Duration.ofMillis(1234)).build().getRequestFactory(); assertThat(ReflectionTestUtils.getField( ReflectionTestUtils.getField(requestFactory, "client"), "readTimeout")) .isEqualTo(1234); @@ -497,7 +499,7 @@ public class RestTemplateBuilderTests { this.builder .requestFactory( () -> new BufferingClientHttpRequestFactory(requestFactory)) - .setConnectTimeout(1234).build(); + .setConnectTimeout(Duration.ofMillis(1234)).build(); assertThat(ReflectionTestUtils.getField(requestFactory, "connectTimeout")) .isEqualTo(1234); } @@ -508,7 +510,7 @@ public class RestTemplateBuilderTests { this.builder .requestFactory( () -> new BufferingClientHttpRequestFactory(requestFactory)) - .setReadTimeout(1234).build(); + .setReadTimeout(Duration.ofMillis(1234)).build(); assertThat(ReflectionTestUtils.getField(requestFactory, "readTimeout")) .isEqualTo(1234); } @@ -524,6 +526,46 @@ public class RestTemplateBuilderTests { .isInstanceOf(BufferingClientHttpRequestFactory.class); } + @Test + @SuppressWarnings("deprecation") + public void deprecatedReadTimeout() { + ClientHttpRequestFactory requestFactory = this.builder + .requestFactory(SimpleClientHttpRequestFactory.class).setReadTimeout(1234) + .build().getRequestFactory(); + assertThat(ReflectionTestUtils.getField(requestFactory, "readTimeout")) + .isEqualTo(1234); + } + + @Test + @SuppressWarnings("deprecation") + public void deprecatedConnectTimeout() { + ClientHttpRequestFactory requestFactory = this.builder + .requestFactory(SimpleClientHttpRequestFactory.class) + .setConnectTimeout(1234).build().getRequestFactory(); + assertThat(ReflectionTestUtils.getField(requestFactory, "connectTimeout")) + .isEqualTo(1234); + } + + @Test + public void readTimeoutShouldBeIgnored() { + ClientHttpRequestFactory requestFactory = this.builder + .requestFactory(SimpleClientHttpRequestFactory.class) + .setReadTimeout(Duration.ofSeconds(5)).setReadTimeout(null).build() + .getRequestFactory(); + assertThat(ReflectionTestUtils.getField(requestFactory, "readTimeout")) + .isEqualTo(-1); + } + + @Test + public void connectionTimeoutShouldBeIgnored() { + ClientHttpRequestFactory requestFactory = this.builder + .requestFactory(SimpleClientHttpRequestFactory.class) + .setConnectTimeout(Duration.ofSeconds(5)).setConnectTimeout(null).build() + .getRequestFactory(); + assertThat(ReflectionTestUtils.getField(requestFactory, "connectTimeout")) + .isEqualTo(-1); + } + public static class RestTemplateSubclass extends RestTemplate { }