diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml
index 65e9461f5..f189a865b 100644
--- a/spring-cloud-sleuth-dependencies/pom.xml
+++ b/spring-cloud-sleuth-dependencies/pom.xml
@@ -17,7 +17,7 @@
3.4.0
1.1.0.BUILD-SNAPSHOT
1.8.4
- 0.5.3
+ 0.5.5
@@ -88,6 +88,11 @@
spanstore-jdbc
${zipkin-java.version}
+
+ io.zipkin.java
+ zipkin-junit
+ ${zipkin-java.version}
+
diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml
index 08e5d0944..95cc70d70 100644
--- a/spring-cloud-sleuth-samples/pom.xml
+++ b/spring-cloud-sleuth-samples/pom.xml
@@ -62,12 +62,12 @@
io.zipkin.java
zipkin
- 0.5.3
+ 0.5.5
io.zipkin.java
zipkin-server
- 0.5.3
+ 0.5.5
diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml
index 25b12f09f..580d30f49 100644
--- a/spring-cloud-sleuth-zipkin/pom.xml
+++ b/spring-cloud-sleuth-zipkin/pom.xml
@@ -56,9 +56,8 @@
test
- com.squareup.okhttp3
- mockwebserver
- 3.0.0
+ io.zipkin.java
+ zipkin-junit
test
diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java
index b42bd18c1..e8ebf0f7f 100644
--- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java
+++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java
@@ -1,36 +1,33 @@
package org.springframework.cloud.sleuth.zipkin;
-import okhttp3.mockwebserver.MockResponse;
-import okhttp3.mockwebserver.MockWebServer;
-import okhttp3.mockwebserver.RecordedRequest;
-import okhttp3.mockwebserver.SocketPolicy;
import org.junit.Rule;
import org.junit.Test;
import org.springframework.cloud.sleuth.metric.CounterServiceBasedSpanReporterService;
import org.springframework.cloud.sleuth.metric.SpanReporterService;
-import zipkin.Codec;
import zipkin.Span;
-import java.util.List;
+import zipkin.junit.HttpFailure;
+import zipkin.junit.ZipkinRule;
+import static java.util.Arrays.asList;
import static org.assertj.core.api.Assertions.assertThat;
public class HttpZipkinSpanReporterTest {
- @Rule public final MockWebServer server = new MockWebServer();
+ @Rule public final ZipkinRule zipkin = new ZipkinRule();
InMemorySpanCounter inMemorySpanCounter = new InMemorySpanCounter();
SpanReporterService spanReporterService = new CounterServiceBasedSpanReporterService("accepted", "dropped",
this.inMemorySpanCounter);
// set flush interval to 0 so that tests can drive flushing explicitly
HttpZipkinSpanReporter reporter = new HttpZipkinSpanReporter(
- this.server.url("").toString(), 0, this.spanReporterService);
+ this.zipkin.httpUrl(), 0, this.spanReporterService);
@Test
public void reportDoesntDoIO() throws Exception {
this.reporter.report(span(1L, "foo"));
- assertThat(this.server.getRequestCount()).isZero();
+ assertThat(this.zipkin.httpRequestCount()).isZero();
}
@Test
@@ -52,26 +49,23 @@ public class HttpZipkinSpanReporterTest {
@Test
public void postsSpans() throws Exception {
- this.server.enqueue(new MockResponse());
-
this.reporter.report(span(1L, "foo"));
this.reporter.report(span(2L, "bar"));
this.reporter.flush(); // manually flush the spans
- // Ensure a proper request was sent
- RecordedRequest request = this.server.takeRequest();
- assertThat(request.getRequestLine()).isEqualTo("POST /api/v1/spans HTTP/1.1");
- assertThat(request.getHeader("Content-Type")).isEqualTo("application/json");
+ // Ensure only one request was sent
+ assertThat(this.zipkin.httpRequestCount()).isEqualTo(1);
- // Now, let's read back the spans we sent!
- List zipkinSpans = Codec.JSON.readSpans(request.getBody().readByteArray());
- assertThat(zipkinSpans).containsExactly(span(1L, "foo"), span(2L, "bar"));
+ assertThat(this.zipkin.getTraces()).containsExactly(
+ asList(span(1L, "foo")),
+ asList(span(2L, "bar"))
+ );
}
@Test
public void incrementsDroppedSpansWhenServerErrors() throws Exception {
- this.server.enqueue(new MockResponse().setResponseCode(500));
+ this.zipkin.enqueueFailure(HttpFailure.sendErrorResponse(500, "Ouch"));
this.reporter.report(span(1L, "foo"));
this.reporter.report(span(2L, "bar"));
@@ -83,8 +77,7 @@ public class HttpZipkinSpanReporterTest {
@Test
public void incrementsDroppedSpansWhenServerDisconnects() throws Exception {
- this.server.enqueue(new MockResponse()
- .setSocketPolicy(SocketPolicy.DISCONNECT_AFTER_REQUEST));
+ this.zipkin.enqueueFailure(HttpFailure.disconnectDuringBody());
this.reporter.report(span(1L, "foo"));
this.reporter.report(span(2L, "bar"));