Add test to assert auto close behaviour

This commit is contained in:
Dave Syer
2016-02-04 10:35:19 +00:00
parent 271fb74b17
commit e819881be8

View File

@@ -16,6 +16,7 @@
package org.springframework.cloud.sleuth;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;
import static org.mockito.Matchers.isA;
@@ -123,6 +124,34 @@ public class DefaultTracerTests {
assertThat(child.isExportable(), is(false));
}
@Test
public void parentNotRemovedIfActiveOnJoin() {
DefaultTracer tracer = new DefaultTracer(new AlwaysSampler(), new Random(), this.publisher);
Span parent = tracer.startTrace(CREATE_SIMPLE_TRACE);
Span span = tracer.joinTrace(IMPORTANT_WORK_1, parent);
tracer.close(span);
assertThat(tracer.getCurrentSpan(), is(equalTo(parent)));
}
@Test
public void parentRemovedIfNotActiveOnJoin() {
DefaultTracer tracer = new DefaultTracer(new AlwaysSampler(), new Random(), this.publisher);
Span parent = Span.builder().name(CREATE_SIMPLE_TRACE).traceId(1L).spanId(1L).build();
Span span = tracer.joinTrace(IMPORTANT_WORK_1, parent);
tracer.close(span);
assertThat(tracer.getCurrentSpan(), is(equalTo(null)));
}
@Test
public void grandParentRestoredAfterAutoClose() {
DefaultTracer tracer = new DefaultTracer(new AlwaysSampler(), new Random(), this.publisher);
Span grandParent = tracer.startTrace(CREATE_SIMPLE_TRACE);
Span parent = Span.builder().name(IMPORTANT_WORK_1).traceId(1L).spanId(1L).build();
Span span = tracer.joinTrace(IMPORTANT_WORK_2, parent);
tracer.close(span);
assertThat(tracer.getCurrentSpan(), is(equalTo(grandParent)));
}
private Span assertSpan(List<Span> spans, Long parentId, String name) {
List<Span> found = findSpans(spans, parentId);
assertThat("more than one span with parentId " + parentId, found.size(), is(1));