From 8f794dc769f832889a42ebbfa42cf07776fcfcc3 Mon Sep 17 00:00:00 2001 From: ascrutae Date: Tue, 7 Jun 2016 16:27:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=82=E5=B8=B8=E7=BB=86=E5=88=86=EF=BC=8C?= =?UTF-8?q?=E5=8E=BB=E9=99=A4=E6=8E=92=E9=87=8D=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../testframework/api/TraceTreeAssert.java | 41 +++++++++++-------- .../exception/SpanDataFormatException.java | 7 ++++ .../exception/SpanDataNotEqualsException.java | 7 ++++ .../exception/TraceIdNotSameException.java | 7 ++++ .../TraceNodeSizeNotEqualException.java | 7 ++++ 5 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataFormatException.java create mode 100644 test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataNotEqualsException.java create mode 100644 test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceIdNotSameException.java create mode 100644 test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceNodeSizeNotEqualException.java diff --git a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/TraceTreeAssert.java b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/TraceTreeAssert.java index 664b005ddd..f4dec49528 100644 --- a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/TraceTreeAssert.java +++ b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/TraceTreeAssert.java @@ -1,10 +1,13 @@ package com.ai.skywalking.testframework.api; import com.ai.cloud.skywalking.protocol.Span; +import com.ai.skywalking.testframework.api.exception.SpanDataFormatException; +import com.ai.skywalking.testframework.api.exception.SpanDataNotEqualsException; +import com.ai.skywalking.testframework.api.exception.TraceIdNotSameException; +import com.ai.skywalking.testframework.api.exception.TraceNodeSizeNotEqualException; -import java.util.HashSet; +import java.util.ArrayList; import java.util.List; -import java.util.Set; public class TraceTreeAssert { @@ -13,15 +16,17 @@ public class TraceTreeAssert { validateTraceId(spanDataInBuffer); - Set assertSpanData = distinctAndConvertSpanData(spanDataInBuffer); - Set expectedSpanData = distinctAndConvertSpanData(expectedTraceTree); + List assertSpanData = convertSpanDataToCompareStr(spanDataInBuffer); + + List expectedSpanData = convertSpanDataToCompareStr(expectedTraceTree); validateTraceSpanSize(expectedSpanData.size(), assertSpanData.size()); + validateSpanData(expectedSpanData, assertSpanData); } - private static Set distinctAndConvertSpanData(List assertSpanData) { - Set resultSpanData = new HashSet<>(); + private static List convertSpanDataToCompareStr(List assertSpanData) { + List resultSpanData = new ArrayList(); for (Span span : assertSpanData) { StringBuffer tmpSpanDataStr = new StringBuffer(jointTraceLevelId(span.getParentLevel(), span.getLevelId() + " ")); tmpSpanDataStr.append(span.getViewPointId().trim() + " ") @@ -41,17 +46,17 @@ public class TraceTreeAssert { return traceLevelId; } - private static Set distinctAndConvertSpanData(String[][] assertTraceTree) { - Set resultSpanData = new HashSet(); + private static List convertSpanDataToCompareStr(String[][] assertTraceTree) { + List resultSpanData = new ArrayList(); for (String[] spanDataArray : assertTraceTree) { - if (spanDataArray.length != 4) { - throw new IllegalArgumentException("assert trace tree is illegal, " + - "Format :\tParentLevelId\t|\tlevelId\t|\tviewPoint\t|\tbusinesskey"); + if (spanDataArray.length != 3) { + throw new SpanDataFormatException("assert trace tree is illegal, " + + "Format :\ttraceLevelId\t|\tviewPoint\t|\tbusinesskey"); } - StringBuffer tmpSpanDataStr = new StringBuffer(jointTraceLevelId(spanDataArray[0], spanDataArray[1]) + " "); - tmpSpanDataStr.append(spanDataArray[2] == null ? " " : spanDataArray[2].trim() + " ") - .append(spanDataArray[3] == null ? " " : spanDataArray[3].trim() + " "); + StringBuffer tmpSpanDataStr = new StringBuffer(spanDataArray[0] + " "); + tmpSpanDataStr.append(spanDataArray[1] == null ? " " : spanDataArray[1].trim() + " ") + .append(spanDataArray[2] == null ? " " : spanDataArray[2].trim() + " "); resultSpanData.add(tmpSpanDataStr.toString()); } @@ -62,12 +67,12 @@ public class TraceTreeAssert { private static void validateTraceSpanSize(int actualSpanSize, int expectedSpanSize) { if (actualSpanSize != expectedSpanSize) { - throw new RuntimeException("expected span size : " + expectedSpanSize + + throw new TraceNodeSizeNotEqualException("expected span size : " + expectedSpanSize + "\n actual span size : " + actualSpanSize); } } - private static void validateSpanData(Set expectedSpanData, Set assertTraceTree) { + private static void validateSpanData(List expectedSpanData, List assertTraceTree) { for (String assertSpanDataStr : assertTraceTree) { if (expectedSpanData.contains(assertSpanDataStr)) { expectedSpanData.remove(assertSpanDataStr); @@ -80,7 +85,7 @@ public class TraceTreeAssert { stringBuffer.append(expectedSpan + "\n"); } - throw new RuntimeException("actual trace tree is not contain those span as follow:\n" + stringBuffer); + throw new SpanDataNotEqualsException("actual trace tree is not contain those span as follow:\n" + stringBuffer); } } @@ -93,7 +98,7 @@ public class TraceTreeAssert { } if (!traceId.equals(span.getTraceId())) { - throw new RuntimeException("trace id is not all the same.trace id :" + + throw new TraceIdNotSameException("trace id is not all the same.trace id :" + traceId + ",Error trace id :" + span.getTraceId()); } diff --git a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataFormatException.java b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataFormatException.java new file mode 100644 index 0000000000..47d18f73fe --- /dev/null +++ b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataFormatException.java @@ -0,0 +1,7 @@ +package com.ai.skywalking.testframework.api.exception; + +public class SpanDataFormatException extends RuntimeException { + public SpanDataFormatException(String message) { + super(message); + } +} diff --git a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataNotEqualsException.java b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataNotEqualsException.java new file mode 100644 index 0000000000..d733212e54 --- /dev/null +++ b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/SpanDataNotEqualsException.java @@ -0,0 +1,7 @@ +package com.ai.skywalking.testframework.api.exception; + +public class SpanDataNotEqualsException extends RuntimeException { + public SpanDataNotEqualsException(String message) { + super(message); + } +} diff --git a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceIdNotSameException.java b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceIdNotSameException.java new file mode 100644 index 0000000000..450ce76d8a --- /dev/null +++ b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceIdNotSameException.java @@ -0,0 +1,7 @@ +package com.ai.skywalking.testframework.api.exception; + +public class TraceIdNotSameException extends RuntimeException { + public TraceIdNotSameException(String message) { + super(message); + } +} diff --git a/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceNodeSizeNotEqualException.java b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceNodeSizeNotEqualException.java new file mode 100644 index 0000000000..4a4ebf4dcd --- /dev/null +++ b/test/skywalking-test-api/src/main/java/com/ai/skywalking/testframework/api/exception/TraceNodeSizeNotEqualException.java @@ -0,0 +1,7 @@ +package com.ai.skywalking.testframework.api.exception; + +public class TraceNodeSizeNotEqualException extends RuntimeException { + public TraceNodeSizeNotEqualException(String message) { + super(message); + } +}