Skip to content

Commit 53d7fd5

Browse files
maciejwalkowiakwilkinsona
authored andcommitted
Add constructor to TestRestTemplate that takes a RestTemplateBuilder
Closes gh-6706 See gh-6702
1 parent 6cb1883 commit 53d7fd5

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,19 @@ public class TestRestTemplate {
8282

8383
private final RestTemplate restTemplate;
8484

85+
/**
86+
* Create a new {@link TestRestTemplate} instance.
87+
* @param restTemplateBuilder builder used to configure underlying {@link RestTemplate}
88+
*/
89+
public TestRestTemplate(RestTemplateBuilder restTemplateBuilder) {
90+
this(buildRestTemplate(restTemplateBuilder));
91+
}
92+
93+
private static RestTemplate buildRestTemplate(RestTemplateBuilder restTemplateBuilder) {
94+
Assert.notNull(restTemplateBuilder, "RestTemplateBuilder must not be null");
95+
return restTemplateBuilder.build();
96+
}
97+
8598
/**
8699
* Create a new {@link TestRestTemplate} instance.
87100
* @param httpClientOptions client options to use if the Apache HTTP Client is used

spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import org.springframework.boot.test.web.client.TestRestTemplate.CustomHttpComponentsClientHttpRequestFactory;
2626
import org.springframework.boot.test.web.client.TestRestTemplate.HttpClientOption;
27+
import org.springframework.boot.web.client.RestTemplateBuilder;
2728
import org.springframework.http.HttpMethod;
2829
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
2930
import org.springframework.http.client.InterceptingClientHttpRequestFactory;
@@ -33,6 +34,7 @@
3334
import org.springframework.web.client.RestTemplate;
3435

3536
import static org.assertj.core.api.Assertions.assertThat;
37+
import static org.mockito.BDDMockito.given;
3638
import static org.mockito.Mockito.mock;
3739

3840
/**
@@ -43,6 +45,15 @@
4345
*/
4446
public class TestRestTemplateTests {
4547

48+
@Test
49+
public void fromRestTemplateBuilder() {
50+
RestTemplateBuilder builder = mock(RestTemplateBuilder.class);
51+
RestTemplate delegate = new RestTemplate();
52+
given(builder.build()).willReturn(delegate);
53+
assertThat(new TestRestTemplate(builder).getRestTemplate())
54+
.isEqualTo(delegate);
55+
}
56+
4657
@Test
4758
public void simple() {
4859
// The Apache client is on the classpath so we get the fully-fledged factory

0 commit comments

Comments
 (0)