From a4d2f237912d431b9cabf07559acf77d1f866eb4 Mon Sep 17 00:00:00 2001 From: wusheng Date: Mon, 20 Feb 2017 22:34:47 +0800 Subject: [PATCH] Add skywalking-sniffer-mock module. For testing sdk-plugin and collector(not merged yet) modules. --- skywalking-sniffer/pom.xml | 1 + skywalking-sniffer/skywalking-api/pom.xml | 20 -------- .../skywalking-sniffer-mock/pom.xml | 30 +++++++++++ .../context/MockTracerContextListener.java | 51 +++++++++++++++++++ .../sniffer/mock/context/SegmentAssert.java | 13 +++++ 5 files changed, 95 insertions(+), 20 deletions(-) create mode 100644 skywalking-sniffer/skywalking-sniffer-mock/pom.xml create mode 100644 skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/MockTracerContextListener.java create mode 100644 skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/SegmentAssert.java diff --git a/skywalking-sniffer/pom.xml b/skywalking-sniffer/pom.xml index 2661cf4d9..a6aef14eb 100644 --- a/skywalking-sniffer/pom.xml +++ b/skywalking-sniffer/pom.xml @@ -17,6 +17,7 @@ skywalking-api skywalking-sdk-plugin skywalking-toolkit-activation + skywalking-sniffer-mock diff --git a/skywalking-sniffer/skywalking-api/pom.xml b/skywalking-sniffer/skywalking-api/pom.xml index e11ee28cc..5774f18bd 100644 --- a/skywalking-sniffer/skywalking-api/pom.xml +++ b/skywalking-sniffer/skywalking-api/pom.xml @@ -51,26 +51,6 @@ disruptor 3.3.6 - - - - junit - junit - 4.11 - test - - - org.powermock - powermock-api-mockito - 1.6.5 - test - - - org.powermock - powermock-module-junit4 - 1.6.5 - test - diff --git a/skywalking-sniffer/skywalking-sniffer-mock/pom.xml b/skywalking-sniffer/skywalking-sniffer-mock/pom.xml new file mode 100644 index 000000000..b18693f11 --- /dev/null +++ b/skywalking-sniffer/skywalking-sniffer-mock/pom.xml @@ -0,0 +1,30 @@ + + + + skywalking-sniffer + com.a.eye + 3.0-2017 + + 4.0.0 + skywalking-sniffer-mock + This is a sniffer mock module, test for test-dependency, only. + + + + com.a.eye + skywalking-api + ${project.version} + + + + + junit + junit + 4.12 + + + + + diff --git a/skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/MockTracerContextListener.java b/skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/MockTracerContextListener.java new file mode 100644 index 000000000..ec7e1ccde --- /dev/null +++ b/skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/MockTracerContextListener.java @@ -0,0 +1,51 @@ +package com.a.eye.skywalking.sniffer.mock.context; + +import com.a.eye.skywalking.api.context.TracerContext; +import com.a.eye.skywalking.api.context.TracerContextListener; +import com.a.eye.skywalking.trace.TraceSegment; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import org.junit.Assert; + +/** + * This is mock tracer context listener, which should be added by calling {@link TracerContext.ListenerManager#add(TracerContextListener)}. + * This mock listener will hold all finished trace, which all are generated by {@link TracerContext#finish()}. + * + * Created by wusheng on 2017/2/20. + */ +public class MockTracerContextListener implements TracerContextListener { + private List finishedTraceSegments = Collections.synchronizedList(new ArrayList()); + + @Override public void afterFinished(TraceSegment traceSegment) { + finishedTraceSegments.add(traceSegment); + } + + /** + * Assert all finished {@link #finishedTraceSegments} match the given size. + * + * @param size the give size. + */ + public void assertSize(int size){ + Assert.assertEquals(size, finishedTraceSegments.size()); + } + + /** + * Assert the {@link TraceSegment} at the given index of {@link #finishedTraceSegments}, + * and run the given {@link SegmentAssert#call(TraceSegment)} to assert. + * + * @param index the given index. + * @param segmentAssert the given assert. + */ + public void assertTraceSegment(int index, SegmentAssert segmentAssert){ + assertSize(index + 1); + segmentAssert.call(finishedTraceSegments.get(index)); + } + + /** + * Clear all hold data. + */ + public void clear(){ + finishedTraceSegments.clear(); + } +} diff --git a/skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/SegmentAssert.java b/skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/SegmentAssert.java new file mode 100644 index 000000000..52a2b66d7 --- /dev/null +++ b/skywalking-sniffer/skywalking-sniffer-mock/src/main/java/com/a/eye/skywalking/sniffer/mock/context/SegmentAssert.java @@ -0,0 +1,13 @@ +package com.a.eye.skywalking.sniffer.mock.context; + +import com.a.eye.skywalking.trace.TraceSegment; + +/** + * The SegmentAssert interface should be implemented by any + * class whose instances are intended to assert a trace segment data. + * + * Created by wusheng on 2017/2/20. + */ +public interface SegmentAssert{ + void call(TraceSegment finishedSegment); +}