package org.skywalking.apm.sniffer.mock;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.skywalking.apm.agent.core.boot.ServiceManager;
import org.skywalking.apm.sniffer.mock.context.MockTracerContextListener;
import org.skywalking.apm.sniffer.mock.context.SegmentAssert;
import org.skywalking.apm.sniffer.mock.trace.TraceSegmentBuilderFactory;
import org.skywalking.apm.trace.TraceSegment;
/**
* Created by wusheng on 2017/2/21.
*/
public class MockTracerContextListenerTestCase {
@BeforeClass
public static void setup() {
ServiceManager.INSTANCE.boot();
}
@Test
public void testAfterFinished() {
MockTracerContextListener listener = new MockTracerContextListener();
listener.afterFinished(TraceSegmentBuilderFactory.INSTANCE.singleTomcat200Trace());
Assert.assertNotNull(listener.getFinished(0));
}
@Test(expected = AssertionError.class)
public void testAssertSize() {
MockTracerContextListener listener = new MockTracerContextListener();
listener.afterFinished(TraceSegmentBuilderFactory.INSTANCE.singleTomcat404Trace());
listener.assertSize(0);
}
@Test
public void testAssertTraceSegment() {
MockTracerContextListener listener = new MockTracerContextListener();
listener.afterFinished(TraceSegmentBuilderFactory.INSTANCE.singleTomcat404Trace());
listener.afterFinished(TraceSegmentBuilderFactory.INSTANCE.singleTomcat500Trace());
listener.assertTraceSegment(0, new SegmentAssert() {
@Override
public void call(TraceSegment finishedSegment) {
Assert.assertNotNull(finishedSegment);
}
});
}
@Test(expected = AssertionError.class)
public void testClear() {
MockTracerContextListener listener = new MockTracerContextListener();
listener.afterFinished(TraceSegmentBuilderFactory.INSTANCE.singleTomcat404Trace());
listener.afterFinished(TraceSegmentBuilderFactory.INSTANCE.singleTomcat500Trace());
listener.clear();
listener.assertValidIndex(0);
}
@Test
public void testTraceOf_Tomcat_DubboClient() {
TraceSegment segment = TraceSegmentBuilderFactory.INSTANCE.traceOf_Tomcat_DubboClient();
Assert.assertEquals(2, segment.getSpans().size());
}
@Test
public void testTraceOf_DubboServer_MySQL() {
TraceSegment segment = TraceSegmentBuilderFactory.INSTANCE.traceOf_DubboServer_MySQL();
Assert.assertEquals(2, segment.getSpans().size());
}
}