From e783df88a0aec921645fa6c0780533a14203b2e4 Mon Sep 17 00:00:00 2001 From: svenz Date: Tue, 30 May 2017 19:19:27 -0700 Subject: [PATCH] Cleanup test case based on review comments --- .../web/HttpTraceKeysInjectorUnitTests.java | 61 ++++++++++--------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpTraceKeysInjectorUnitTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpTraceKeysInjectorUnitTests.java index 0427b2ef9..322bc67e7 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpTraceKeysInjectorUnitTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/HttpTraceKeysInjectorUnitTests.java @@ -1,15 +1,12 @@ package org.springframework.cloud.sleuth.instrument.web; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; +import static org.assertj.core.api.BDDAssertions.*; import java.net.URL; import java.util.Arrays; import java.util.Map; import java.util.Random; -import org.junit.Before; import org.junit.Test; import org.springframework.cloud.sleuth.DefaultSpanNamer; import org.springframework.cloud.sleuth.NoOpSpanReporter; @@ -27,41 +24,49 @@ import org.springframework.http.HttpMethod; import org.springframework.http.MediaType; +/** + * Test case for HttpTraceKeysInjector + * + * @author Sven Zethelius + */ public class HttpTraceKeysInjectorUnitTests { - TraceKeys traceKeys = new TraceKeys(); + private TraceKeys traceKeys = new TraceKeys(); private SpanNamer spanNamer = new DefaultSpanNamer(); private SpanLogger spanLogger = new Slf4jSpanLogger("skip"); private SpanReporter spanReporter = new NoOpSpanReporter(); - AlwaysSampler sampler = new AlwaysSampler(); - Tracer tracer = new DefaultTracer(sampler, new Random(), spanNamer, spanLogger, spanReporter, traceKeys); - HttpTraceKeysInjector injector; - - @Before - public void setup() { - assertNotNull(tracer); - injector = new HttpTraceKeysInjector(tracer, traceKeys); - } + private AlwaysSampler sampler = new AlwaysSampler(); + private Tracer tracer = new DefaultTracer(sampler, new Random(), spanNamer, spanLogger, spanReporter, traceKeys); + private HttpTraceKeysInjector injector = new HttpTraceKeysInjector(tracer, traceKeys); + /** + * Test that the correct tag values are set based on Http Headers + * + * @throws Exception + */ @Test - public void testHttpAttributes() throws Exception { - traceKeys.getHttp().setHeaders(Arrays.asList("Accept", "User-Agent", "Content-Type"));; - + public void testHttpHeadersToTags() throws Exception { + // Given + Span span = tracer.createSpan("TestSpan", sampler); URL url = new URL("http://localhost:8080/"); + HttpHeaders headers = new HttpHeaders(); headers.add("User-Agent", "Test"); headers.put("Accept", Arrays.asList(MediaType.TEXT_PLAIN_VALUE, MediaType.TEXT_XML_VALUE)); headers.add("Content-Length", "0"); - headers.add("X-B3-TraceId","3bb9a1fa9e70fdbd763261a53162f330"); - headers.add("X-B3-SpanId", "763261a53162f330"); - headers.add("X-B3-Sampled","1"); - headers.add("X-Span-Name", "http:/"); - - Span span = tracer.createSpan("TestSpan", sampler); - injector.addRequestTags(url.toString(), url.getHost(), url.getPath(), HttpMethod.GET.name(), headers ); - Map tags = span.tags(); - assertEquals("Test", tags.get("http.user-agent")); - assertEquals("'text/plain','text/xml'", tags.get("http.accept")); - assertNull(tags.get("http.content-type")); + headers.add(Span.TRACE_ID_NAME,"3bb9a1fa9e70fdbd763261a53162f330"); + headers.add(Span.SPAN_ID_NAME, "763261a53162f330"); + headers.add(Span.SAMPLED_NAME,"1"); + headers.add(Span.SPAN_NAME_NAME, "http:/"); + traceKeys.getHttp().setHeaders(Arrays.asList("Accept", "User-Agent", "Content-Type"));; + + // when + injector.addRequestTags(url.toString(), url.getHost(), url.getPath(), HttpMethod.GET.name(), headers ); + + // verify + then(span.tags()) + .containsEntry("http.user-agent", "Test") + .containsEntry("http.accept", "'text/plain','text/xml'") + .doesNotContainKey("http.content-type"); } }