Polish "RestTemplateCustomizers should be applied at the end"
Closes gh-13358
This commit is contained in:
parent
ce3420748f
commit
c612ed2695
|
@ -532,7 +532,6 @@ public class RestTemplateBuilder {
|
|||
restTemplate.getInterceptors().add(this.basicAuthorization);
|
||||
}
|
||||
restTemplate.getInterceptors().addAll(this.interceptors);
|
||||
|
||||
if (!CollectionUtils.isEmpty(this.restTemplateCustomizers)) {
|
||||
for (RestTemplateCustomizer customizer : this.restTemplateCustomizers) {
|
||||
customizer.customize(restTemplate);
|
||||
|
|
|
@ -389,6 +389,32 @@ public class RestTemplateBuilderTests {
|
|||
verify(customizer2).customize(template);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void customizerShouldBeAppliedInTheEnd() {
|
||||
ResponseErrorHandler errorHandler = mock(ResponseErrorHandler.class);
|
||||
ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
|
||||
this.builder.interceptors(this.interceptor)
|
||||
.messageConverters(this.messageConverter).rootUri("http://localhost:8080")
|
||||
.errorHandler(errorHandler).basicAuthorization("spring", "boot")
|
||||
.requestFactory(() -> requestFactory).customizers((restTemplate) -> {
|
||||
assertThat(restTemplate.getInterceptors()).hasSize(2)
|
||||
.contains(this.interceptor).anyMatch(
|
||||
(ic) -> ic instanceof BasicAuthorizationInterceptor);
|
||||
assertThat(restTemplate.getMessageConverters())
|
||||
.contains(this.messageConverter);
|
||||
assertThat(restTemplate.getUriTemplateHandler())
|
||||
.isInstanceOf(RootUriTemplateHandler.class);
|
||||
assertThat(restTemplate.getErrorHandler()).isEqualTo(errorHandler);
|
||||
ClientHttpRequestFactory actualRequestFactory = restTemplate
|
||||
.getRequestFactory();
|
||||
assertThat(actualRequestFactory)
|
||||
.isInstanceOf(InterceptingClientHttpRequestFactory.class);
|
||||
assertThat(ReflectionTestUtils.getField(actualRequestFactory,
|
||||
"requestFactory")).isSameAs(requestFactory);
|
||||
}).build();
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void buildShouldReturnRestTemplate() {
|
||||
RestTemplate template = this.builder.build();
|
||||
|
@ -498,38 +524,6 @@ public class RestTemplateBuilderTests {
|
|||
.isInstanceOf(BufferingClientHttpRequestFactory.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void customizerShouldBeAppliedInTheEnd() {
|
||||
|
||||
ClientHttpRequestInterceptor interceptor = this.interceptor;
|
||||
HttpMessageConverter<Object> messageConverter = this.messageConverter;
|
||||
ResponseErrorHandler errorHandler = mock(ResponseErrorHandler.class);
|
||||
|
||||
this.builder.interceptors(interceptor).messageConverters(messageConverter)
|
||||
.rootUri("http://localhost:8080").errorHandler(errorHandler)
|
||||
.basicAuthorization("spring", "boot")
|
||||
.requestFactory(HttpComponentsClientHttpRequestFactory.class)
|
||||
.customizers((restTemplate) -> {
|
||||
ClientHttpRequestFactory requestFactory = restTemplate
|
||||
.getRequestFactory();
|
||||
assertThat(restTemplate.getInterceptors()).hasSize(2)
|
||||
.contains(interceptor).anyMatch(
|
||||
(ic) -> ic instanceof BasicAuthorizationInterceptor);
|
||||
assertThat(restTemplate.getMessageConverters())
|
||||
.contains(messageConverter);
|
||||
assertThat(restTemplate.getUriTemplateHandler())
|
||||
.isInstanceOf(RootUriTemplateHandler.class);
|
||||
assertThat(restTemplate.getErrorHandler()).isEqualTo(errorHandler);
|
||||
assertThat(requestFactory)
|
||||
.isInstanceOf(InterceptingClientHttpRequestFactory.class);
|
||||
assertThat(ReflectionTestUtils.getField(requestFactory,
|
||||
"requestFactory")).isInstanceOf(
|
||||
HttpComponentsClientHttpRequestFactory.class);
|
||||
|
||||
}).build();
|
||||
|
||||
}
|
||||
|
||||
public static class RestTemplateSubclass extends RestTemplate {
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue