diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/AdhocTestSuite.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/AdhocTestSuite.java index 7ffdbed5b..b2bbc570c 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/AdhocTestSuite.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/AdhocTestSuite.java @@ -21,7 +21,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; import org.junit.runners.Suite.SuiteClasses; import org.springframework.cloud.sleuth.instrument.web.RestTemplateTraceAspectIntegrationTests; -import org.springframework.cloud.sleuth.instrument.web.client.WebClientDiscoveryExceptionTests; +import org.springframework.cloud.sleuth.instrument.web.client.discoveryexception.WebClientDiscoveryExceptionTests; /** * A test suite for probing weird ordering problems in the tests. diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientDiscoveryExceptionTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/discoveryexception/WebClientDiscoveryExceptionTests.java similarity index 98% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientDiscoveryExceptionTests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/discoveryexception/WebClientDiscoveryExceptionTests.java index 73ff1f476..1bf42d1a3 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientDiscoveryExceptionTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/discoveryexception/WebClientDiscoveryExceptionTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.instrument.web.client; +package org.springframework.cloud.sleuth.instrument.web.client.discoveryexception; import java.io.IOException; import java.util.Map; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientExceptionTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exception/WebClientExceptionTests.java similarity index 98% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientExceptionTests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exception/WebClientExceptionTests.java index 9af225c0d..2d4fce19b 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientExceptionTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/exception/WebClientExceptionTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.instrument.web.client; +package org.springframework.cloud.sleuth.instrument.web.client.exception; import java.io.IOException; import java.util.Collections; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/Issue307Tests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue307/Issue307Tests.java similarity index 99% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/Issue307Tests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue307/Issue307Tests.java index c0d14ae8c..bd3eb5856 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/Issue307Tests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue307/Issue307Tests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.instrument.web.client.feign.issues; +package org.springframework.cloud.sleuth.instrument.web.client.feign.issues.issue307; import java.util.ArrayList; import java.util.List; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue362/Issue362Tests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue362/Issue362Tests.java index ef8f23bcc..806b6c65f 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue362/Issue362Tests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/issues/issue362/Issue362Tests.java @@ -17,6 +17,8 @@ package org.springframework.cloud.sleuth.instrument.web.client.feign.issues.issue362; import java.util.Date; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import org.junit.Before; @@ -42,7 +44,6 @@ import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; -import feign.Client; import feign.Logger; import feign.Response; import feign.RetryableException; @@ -62,9 +63,11 @@ import static org.assertj.core.api.BDDAssertions.then; public class Issue362Tests { RestTemplate template = new RestTemplate(); + @Autowired FeignComponentAsserter feignComponentAsserter; @Before public void setup() { + this.feignComponentAsserter.executedComponents.clear(); ExceptionUtils.setFail(true); } @@ -88,6 +91,8 @@ public class Issue362Tests { } catch (Exception e) { } then(ExceptionUtils.getLastException()).isNull(); + then(this.feignComponentAsserter.executedComponents) + .containsEntry(ErrorDecoder.class, true); } } @@ -118,17 +123,20 @@ class Application { } @Bean - public Client client() { - return new Client.Default(null, null); - } + public FeignComponentAsserter testHolder() { return new FeignComponentAsserter(); } + +} + +class FeignComponentAsserter { + Map executedComponents = new ConcurrentHashMap<>(); } @Configuration class CustomConfig { @Bean - public ErrorDecoder errorDecoder() { - return new CustomErrorDecoder(); + public ErrorDecoder errorDecoder(FeignComponentAsserter feignComponentAsserter) { + return new CustomErrorDecoder(feignComponentAsserter); } @Bean @@ -138,22 +146,25 @@ class CustomConfig { public static class CustomErrorDecoder extends ErrorDecoder.Default { - public CustomErrorDecoder() { + private final FeignComponentAsserter feignComponentAsserter; + + public CustomErrorDecoder(FeignComponentAsserter feignComponentAsserter) { + this.feignComponentAsserter = feignComponentAsserter; } @Override public Exception decode(String methodKey, Response response) { + this.feignComponentAsserter.executedComponents.put(ErrorDecoder.class, true); if (response.status() == 409) { return new RetryableException("Article not Ready", new Date()); } else { return super.decode(methodKey, response); } } - } } -@FeignClient(value="myFeignClient", url="http://localhost:9998", +@FeignClient(name="myFeignClient", url="http://localhost:9998", configuration = CustomConfig.class) interface MyFeignClient { diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignClientServerErrorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java similarity index 99% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignClientServerErrorTests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java index b5277b03a..67512f8cb 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/FeignClientServerErrorTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/feign/servererrors/FeignClientServerErrorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.instrument.web.client.feign; +package org.springframework.cloud.sleuth.instrument.web.client.feign.servererrors; import java.util.ArrayList; import java.util.Collections; diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/integration/WebClientTests.java similarity index 99% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientTests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/integration/WebClientTests.java index adef26999..347db6be4 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/WebClientTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/integration/WebClientTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.instrument.web.client; +package org.springframework.cloud.sleuth.instrument.web.client.integration; import java.lang.invoke.MethodHandles; import java.util.ArrayList;