Tracer.getInstance().handleSpanCloseMethod(this);
@Test public void handleSpanCloseMethod_completes_the_span_as_expected_overall_request_span() { // given Span overallSpan = Tracer.getInstance().startRequestWithRootSpan("root"); assertThat(Tracer.getInstance().getCurrentSpan()).isSameAs(overallSpan); assertThat(overallSpan.isCompleted()).isFalse(); // when Tracer.getInstance().handleSpanCloseMethod(overallSpan); // then assertThat(overallSpan.isCompleted()).isTrue(); assertThat(Tracer.getInstance().getCurrentSpan()).isNull(); }
@Test public void handleSpanCloseMethod_completes_the_span_as_expected_subspan() { // given Span parentSpan = Tracer.getInstance().startRequestWithRootSpan("root"); Span subspan = Tracer.getInstance().startSubSpan("subspan", SpanPurpose.LOCAL_ONLY); assertThat(Tracer.getInstance().getCurrentSpan()).isSameAs(subspan); assertThat(subspan.isCompleted()).isFalse(); // when Tracer.getInstance().handleSpanCloseMethod(subspan); // then assertThat(subspan.isCompleted()).isTrue(); assertThat(Tracer.getInstance().getCurrentSpan()).isSameAs(parentSpan); }
@Test public void handleSpanCloseMethod_does_nothing_if_span_is_already_completed() { // given Span rootSpan = Tracer.getInstance().startRequestWithRootSpan("root"); Span subspan = Tracer.getInstance().startSubSpan("subspan", SpanPurpose.LOCAL_ONLY); Tracer.getInstance().completeSubSpan(); assertThat(subspan.isCompleted()).isTrue(); assertThat(rootSpan.isCompleted()).isFalse(); assertThat(Tracer.getInstance().getCurrentSpan()).isSameAs(rootSpan); assertThat(Tracer.getInstance().getCurrentSpanStackCopy()).isEqualTo(singletonList(rootSpan)); // when Tracer.getInstance().handleSpanCloseMethod(subspan); // then assertThat(rootSpan.isCompleted()).isFalse(); assertThat(Tracer.getInstance().getCurrentSpan()).isSameAs(rootSpan); assertThat(Tracer.getInstance().getCurrentSpanStackCopy()).isEqualTo(singletonList(rootSpan)); }
Tracer.getInstance().handleSpanCloseMethod(parentSpan); Tracer.getInstance().handleSpanCloseMethod(subspan1);
Tracer.getInstance().handleSpanCloseMethod(invalidSpan);