package org.skywalking.apm.agent.core.context;
import org.junit.After;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.skywalking.apm.agent.core.boot.ServiceManager;
import org.skywalking.apm.trace.Span;
import org.skywalking.apm.trace.TraceSegment;
import org.skywalking.apm.trace.tag.Tags;
/**
* Created by wusheng on 2017/2/19.
*/
public class ContextManagerTestCase {
@BeforeClass
public static void setup() {
ServiceManager.INSTANCE.boot();
}
@Test
public void testDelegateToTracerContext() {
Span span = ContextManager.createSpan("serviceA");
Tags.COMPONENT.set(span, "test");
Assert.assertEquals(span, ContextManager.activeSpan());
TracerContext.ListenerManager.add(TestTracerContextListener.INSTANCE);
ContextManager.stopSpan();
TraceSegment segment = TestTracerContextListener.INSTANCE.finishedSegmentCarrier[0];
Assert.assertEquals(span, segment.getSpans().get(0));
}
@After
public void reset() {
TracerContext.ListenerManager.remove(TestTracerContextListener.INSTANCE);
}
}