From 2cdc93cf19a959e1c3a0c25c83cb5d75fed95566 Mon Sep 17 00:00:00 2001 From: Madhura Bhave Date: Wed, 13 Mar 2019 11:40:00 -0700 Subject: [PATCH] Make TestRestTemplate withBasicAuth fault tolerant It's part of TestRestTemplate's contract that it's fault tolerant. This commit aligns the behavior of `withBasicAuth` with that expectation. Closes gh-15780 --- .../boot/test/web/client/TestRestTemplate.java | 7 ++----- .../boot/test/web/client/TestRestTemplateTests.java | 5 +++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java b/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java index a3194465e3..4f16e60ecd 100644 --- a/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java +++ b/spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/web/client/TestRestTemplate.java @@ -1034,11 +1034,8 @@ public class TestRestTemplate { .messageConverters(getRestTemplate().getMessageConverters()) .interceptors(getRestTemplate().getInterceptors()) .uriTemplateHandler(getRestTemplate().getUriTemplateHandler()).build(); - TestRestTemplate testRestTemplate = new TestRestTemplate(restTemplate, username, - password, this.httpClientOptions); - testRestTemplate.getRestTemplate() - .setErrorHandler(getRestTemplate().getErrorHandler()); - return testRestTemplate; + return new TestRestTemplate(restTemplate, username, password, + this.httpClientOptions); } @SuppressWarnings({ "rawtypes", "unchecked" }) diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java index e83355dd5a..65b84fb996 100644 --- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java +++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateTests.java @@ -237,14 +237,15 @@ public class TestRestTemplateTests { } @Test - public void withBasicAuthDoesNotResetErrorHandler() { + public void withBasicAuthShouldUseNoOpErrorHandler() throws Exception { TestRestTemplate originalTemplate = new TestRestTemplate("foo", "bar"); ResponseErrorHandler errorHandler = mock(ResponseErrorHandler.class); originalTemplate.getRestTemplate().setErrorHandler(errorHandler); TestRestTemplate basicAuthTemplate = originalTemplate.withBasicAuth("user", "password"); assertThat(basicAuthTemplate.getRestTemplate().getErrorHandler()) - .isSameAs(errorHandler); + .isInstanceOf(Class.forName( + "org.springframework.boot.test.web.client.TestRestTemplate$NoOpResponseErrorHandler")); } @Test