From 53d7fd5aabf04900cf6283f354ac97f0caf749f8 Mon Sep 17 00:00:00 2001 From: Maciej Walkowiak Date: Sat, 20 Aug 2016 22:46:34 +0200 Subject: [PATCH 1/2] Add constructor to TestRestTemplate that takes a RestTemplateBuilder Closes gh-6706 See gh-6702 --- .../boot/test/web/client/TestRestTemplate.java | 13 +++++++++++++ .../boot/test/web/client/TestRestTemplateTests.java | 11 +++++++++++ 2 files changed, 24 insertions(+) diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java b/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java index 2ff38c93cad..44c14ea4224 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java @@ -82,6 +82,19 @@ public class TestRestTemplate { private final RestTemplate restTemplate; + /** + * Create a new {@link TestRestTemplate} instance. + * @param restTemplateBuilder builder used to configure underlying {@link RestTemplate} + */ + public TestRestTemplate(RestTemplateBuilder restTemplateBuilder) { + this(buildRestTemplate(restTemplateBuilder)); + } + + private static RestTemplate buildRestTemplate(RestTemplateBuilder restTemplateBuilder) { + Assert.notNull(restTemplateBuilder, "RestTemplateBuilder must not be null"); + return restTemplateBuilder.build(); + } + /** * Create a new {@link TestRestTemplate} instance. * @param httpClientOptions client options to use if the Apache HTTP Client is used diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java index 80b0fa2e09b..00a80c2493d 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java @@ -24,6 +24,7 @@ import org.junit.Test; import org.springframework.boot.test.web.client.TestRestTemplate.CustomHttpComponentsClientHttpRequestFactory; import org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption; +import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.http.HttpMethod; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.client.InterceptingClientHttpRequestFactory; @@ -33,6 +34,7 @@ import org.springframework.web.client.RestOperations; import org.springframework.web.client.RestTemplate; import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.mock; /** @@ -43,6 +45,15 @@ import static org.mockito.Mockito.mock; */ public class TestRestTemplateTests { + @Test + public void fromRestTemplateBuilder() { + RestTemplateBuilder builder = mock(RestTemplateBuilder.class); + RestTemplate delegate = new RestTemplate(); + given(builder.build()).willReturn(delegate); + assertThat(new TestRestTemplate(builder).getRestTemplate()) + .isEqualTo(delegate); + } + @Test public void simple() { // The Apache client is on the classpath so we get the fully-fledged factory From f117b93d492d457fc148a17860cf28f36d5dc840 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 22 Aug 2016 20:46:56 +0100 Subject: [PATCH 2/2] =?UTF-8?q?Polish=20=E2=80=9CAdd=20constructor=20to=20?= =?UTF-8?q?TestRestTemplate=20that=20takes=20a=20RestTemplateBuilder?= =?UTF-8?q?=E2=80=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes gh-6702 --- .../boot/test/web/client/TestRestTemplate.java | 15 +++++++++------ .../test/web/client/TestRestTemplateTests.java | 3 +-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java b/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java index 44c14ea4224..c45183972f8 100644 --- a/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java +++ b/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java @@ -84,17 +84,14 @@ public class TestRestTemplate { /** * Create a new {@link TestRestTemplate} instance. - * @param restTemplateBuilder builder used to configure underlying {@link RestTemplate} + * @param restTemplateBuilder builder used to configure underlying + * {@link RestTemplate} + * @since 1.4.1 */ public TestRestTemplate(RestTemplateBuilder restTemplateBuilder) { this(buildRestTemplate(restTemplateBuilder)); } - private static RestTemplate buildRestTemplate(RestTemplateBuilder restTemplateBuilder) { - Assert.notNull(restTemplateBuilder, "RestTemplateBuilder must not be null"); - return restTemplateBuilder.build(); - } - /** * Create a new {@link TestRestTemplate} instance. * @param httpClientOptions client options to use if the Apache HTTP Client is used @@ -130,6 +127,12 @@ public class TestRestTemplate { this.restTemplate = restTemplate; } + private static RestTemplate buildRestTemplate( + RestTemplateBuilder restTemplateBuilder) { + Assert.notNull(restTemplateBuilder, "RestTemplateBuilder must not be null"); + return restTemplateBuilder.build(); + } + private void addAuthentication(RestTemplate restTemplate, String username, String password) { if (username == null) { diff --git a/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java b/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java index 00a80c2493d..3be395db5cb 100644 --- a/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java +++ b/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java @@ -50,8 +50,7 @@ public class TestRestTemplateTests { RestTemplateBuilder builder = mock(RestTemplateBuilder.class); RestTemplate delegate = new RestTemplate(); given(builder.build()).willReturn(delegate); - assertThat(new TestRestTemplate(builder).getRestTemplate()) - .isEqualTo(delegate); + assertThat(new TestRestTemplate(builder).getRestTemplate()).isEqualTo(delegate); } @Test