From 8c98386c1429bd2bd57a77ddd28db49996d9e77e Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sat, 15 Jul 2017 19:39:48 +0200 Subject: [PATCH] WIP --- pom.xml | 6 - .../TraceAutoConfigurationTests.java | 2 +- .../SleuthStreamAutoConfigurationTest.java | 8 +- spring-cloud-sleuth-zipkin/pom.xml | 5 + .../zipkin/ZipkinDiscoveryClientTests.java | 7 -- .../zipkin/ZipkinDiscoveryClientTests.java | 118 ++++++++++++++++++ .../zipkin/ZipkinSpanListenerTests.java | 78 ------------ 7 files changed, 128 insertions(+), 96 deletions(-) delete mode 100644 spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java create mode 100644 spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java diff --git a/pom.xml b/pom.xml index e6265634a..ecc80a547 100644 --- a/pom.xml +++ b/pom.xml @@ -217,12 +217,6 @@ 3.0.0 test - - com.github.tomakehurst - wiremock - 2.6.0 - test - pl.pragmatists JUnitParams diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationTests.java index 593dc8066..505dc2c6a 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationTests.java @@ -17,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat; import org.junit.After; import org.junit.Test; -import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration +import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.test.util.EnvironmentTestUtils; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.Tracer; diff --git a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java index d705ca3b4..8e912ca93 100644 --- a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java +++ b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfigurationTest.java @@ -1,5 +1,7 @@ package org.springframework.cloud.sleuth.stream; +import static org.assertj.core.api.Assertions.assertThat; + import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -8,9 +10,9 @@ import java.util.Date; import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; -import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration -import org.springframework.cloud.commons.util.UtilAutoConfiguration; +import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.test.util.EnvironmentTestUtils; +import org.springframework.cloud.commons.util.UtilAutoConfiguration; import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; import org.springframework.cloud.sleuth.log.NoOpSpanLogger; import org.springframework.cloud.sleuth.log.SpanLogger; @@ -27,8 +29,6 @@ import org.springframework.scheduling.TriggerContext; import org.springframework.scheduling.support.PeriodicTrigger; import org.springframework.scheduling.support.SimpleTriggerContext; -import static org.assertj.core.api.Assertions.assertThat; - public class SleuthStreamAutoConfigurationTest { private AnnotationConfigApplicationContext ctx; diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml index bdd6595b7..455116294 100644 --- a/spring-cloud-sleuth-zipkin/pom.xml +++ b/spring-cloud-sleuth-zipkin/pom.xml @@ -88,6 +88,11 @@ zipkin-junit test + + org.awaitility + awaitility + test + com.squareup.okhttp3 diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java deleted file mode 100644 index 2f690dafb..000000000 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.springframework.cloud.sleuth.zipkin; - -/** - * @author Marcin Grzejszczak - */ -class ZipkinDiscoveryClientTests { -} diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java new file mode 100644 index 000000000..80027526c --- /dev/null +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinDiscoveryClientTests.java @@ -0,0 +1,118 @@ +package org.springframework.cloud.sleuth.zipkin; + +import static org.assertj.core.api.BDDAssertions.then; +import static org.springframework.cloud.sleuth.zipkin.ZipkinDiscoveryClientTests.ZIPKIN_RULE; + +import java.io.IOException; +import java.net.URI; +import java.util.Collections; +import java.util.List; +import java.util.Map; + +import org.assertj.core.api.BDDAssertions; +import org.awaitility.Awaitility; +import org.junit.Before; +import org.junit.ClassRule; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.discovery.DiscoveryClient; +import org.springframework.cloud.sleuth.Span; +import org.springframework.cloud.sleuth.SpanReporter; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.util.SocketUtils; + +import zipkin.junit.ZipkinRule; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = ZipkinDiscoveryClientTests.Config.class, + properties = "spring.zipkin.baseUrl=http://zipkin/") +public class ZipkinDiscoveryClientTests { + + @ClassRule public static ZipkinRule ZIPKIN_RULE = new ZipkinRule(); + + @Autowired SpanReporter spanReporter; + + @Test + public void shouldUseDiscoveryClientToFindZipkinUrlIfPresent() throws Exception { + Span span = Span.builder().traceIdHigh(1L).traceId(2L).spanId(3L).name("foo") + .build(); + + this.spanReporter.report(span); + + Awaitility.await().untilAsserted(() -> then(ZIPKIN_RULE.httpRequestCount()).isGreaterThan(0)); + } + + @Configuration + @EnableAutoConfiguration + static class Config { + @Bean + DiscoveryClient client() { + return new ZipkinDiscoveryClient(); + } + } +} + + +class ZipkinDiscoveryClient implements DiscoveryClient { + + @Override + public String description() { + return ""; + } + + @Override + public ServiceInstance getLocalServiceInstance() { + return null; + } + + @Override + public List getInstances(String s) { + if ("zipkin".equals(s)) { + return Collections.singletonList(new ServiceInstance() { + @Override + public String getServiceId() { + return "zipkin"; + } + + @Override + public String getHost() { + return "localhost"; + } + + @Override + public int getPort() { + return URI.create(ZIPKIN_RULE.httpUrl()).getPort(); + } + + @Override + public boolean isSecure() { + return false; + } + + @Override + public URI getUri() { + return URI.create(ZIPKIN_RULE.httpUrl()); + } + + @Override + public Map getMetadata() { + return null; + } + }); + } + return Collections.emptyList(); + } + + @Override + public List getServices() { + return Collections.singletonList("zipkin"); + } + +} \ No newline at end of file diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java index e0ddbc5d8..878cd5c8b 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java @@ -66,12 +66,10 @@ public class ZipkinSpanListenerTests { @Autowired ZipkinSpanReporter spanReporter; @Autowired MockEnvironment mockEnvironment; @Autowired EndpointLocator endpointLocator; - @Autowired ZipkinDiscoveryClient discoveryClient; @PostConstruct public void init() { this.test.zipkinSpans.clear(); - this.discoveryClient.serviceCalled = false; } Span parent = Span.builder().traceId(1L).name("http:parent").remote(true).build(); @@ -282,17 +280,6 @@ public class ZipkinSpanListenerTests { assertThat(this.test.zipkinSpans).isEmpty(); } - @Test - @Ignore - public void shouldUseDiscoveryClientToFindZipkinUrlIfPresent() { - Span span = Span.builder().traceIdHigh(1L).traceId(2L).spanId(3L).name("foo").build(); - - this.spanListener.report(span); - - assertThat(this.test.zipkinSpans).isNotEmpty(); - assertThat(this.discoveryClient.serviceCalled).isTrue(); - } - @Test public void shouldAddClientServiceIdTagWhenSpanContainsRpcEvent() { this.parent.logEvent(Span.CLIENT_SEND); @@ -352,71 +339,6 @@ public class ZipkinSpanListenerTests { return new MockEnvironment(); } - @Bean - DiscoveryClient client() { - return new ZipkinDiscoveryClient(); - } - - } - -} - -class ZipkinDiscoveryClient implements DiscoveryClient { - - boolean serviceCalled = false; - - @Override - public String description() { - return ""; - } - - @Override - public ServiceInstance getLocalServiceInstance() { - return null; - } - - @Override - public List getInstances(String s) { - if ("zipkin".equals(s)) { - this.serviceCalled = true; - return Collections.singletonList(new ServiceInstance() { - @Override - public String getServiceId() { - return "zipkin"; - } - - @Override - public String getHost() { - return "1.2.3.4"; - } - - @Override - public int getPort() { - return 1234; - } - - @Override - public boolean isSecure() { - return false; - } - - @Override - public URI getUri() { - return URI.create("http://1.2.3.4:1234"); - } - - @Override - public Map getMetadata() { - return null; - } - }); - } - return Collections.emptyList(); - } - - @Override - public List getServices() { - return Collections.singletonList("zipkin"); } } \ No newline at end of file