diff options
author | Hailong Wen <youxiabsyw@gmail.com> | 2018-02-16 15:09:17 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-16 15:09:17 +0800 |
commit | 131b6f062a68d91b4d7a06d1edc25d8e856b6a21 (patch) | |
tree | 2481d17d4feb6f7c2828326c96f001e11a314b30 /api/src/test/java/io/opencensus | |
parent | 490dfe8c1984ffbe0eb9118fba450eed90b414f9 (diff) | |
download | opencensus-java-131b6f062a68d91b4d7a06d1edc25d8e856b6a21.tar.gz |
Add MessageEvent and deprecate NetworkEvent. (closes #858) (#894)
Diffstat (limited to 'api/src/test/java/io/opencensus')
8 files changed, 248 insertions, 8 deletions
diff --git a/api/src/test/java/io/opencensus/internal/BaseMessageEventUtilTest.java b/api/src/test/java/io/opencensus/internal/BaseMessageEventUtilTest.java new file mode 100644 index 00000000..8de1b1c9 --- /dev/null +++ b/api/src/test/java/io/opencensus/internal/BaseMessageEventUtilTest.java @@ -0,0 +1,71 @@ +/* + * Copyright 2018, OpenCensus Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.opencensus.internal; + +import static com.google.common.truth.Truth.assertThat; + +import io.opencensus.trace.MessageEvent; +import io.opencensus.trace.NetworkEvent; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Unit tests for {@link BaseMessageEventUtil}. */ +@RunWith(JUnit4.class) +public class BaseMessageEventUtilTest { + private static final long SENT_EVENT_ID = 12345L; + private static final long RECV_EVENT_ID = 67890L; + private static final long UNCOMPRESSED_SIZE = 100; + private static final long COMPRESSED_SIZE = 99; + + private static final MessageEvent SENT_MESSAGE_EVENT = + MessageEvent.builder(MessageEvent.Type.SENT, SENT_EVENT_ID) + .setUncompressedMessageSize(UNCOMPRESSED_SIZE) + .setCompressedMessageSize(COMPRESSED_SIZE) + .build(); + private static final MessageEvent RECV_MESSAGE_EVENT = + MessageEvent.builder(MessageEvent.Type.RECEIVED, RECV_EVENT_ID) + .setUncompressedMessageSize(UNCOMPRESSED_SIZE) + .setCompressedMessageSize(COMPRESSED_SIZE) + .build(); + private static final NetworkEvent SENT_NETWORK_EVENT = + NetworkEvent.builder(NetworkEvent.Type.SENT, SENT_EVENT_ID) + .setUncompressedMessageSize(UNCOMPRESSED_SIZE) + .setCompressedMessageSize(COMPRESSED_SIZE) + .build(); + private static final NetworkEvent RECV_NETWORK_EVENT = + NetworkEvent.builder(NetworkEvent.Type.RECV, RECV_EVENT_ID) + .setUncompressedMessageSize(UNCOMPRESSED_SIZE) + .setCompressedMessageSize(COMPRESSED_SIZE) + .build(); + + @Test + public void networkEventToMessageEvent() { + assertThat(BaseMessageEventUtil.asMessageEvent(SENT_NETWORK_EVENT)) + .isEqualTo(SENT_MESSAGE_EVENT); + assertThat(BaseMessageEventUtil.asMessageEvent(RECV_NETWORK_EVENT)) + .isEqualTo(RECV_MESSAGE_EVENT); + } + + @Test + public void messageEventToNetworkEvent() { + assertThat(BaseMessageEventUtil.asNetworkEvent(SENT_MESSAGE_EVENT)) + .isEqualTo(SENT_NETWORK_EVENT); + assertThat(BaseMessageEventUtil.asNetworkEvent(RECV_MESSAGE_EVENT)) + .isEqualTo(RECV_NETWORK_EVENT); + } +} diff --git a/api/src/test/java/io/opencensus/trace/BlankSpanTest.java b/api/src/test/java/io/opencensus/trace/BlankSpanTest.java index b9760c2f..185a5acd 100644 --- a/api/src/test/java/io/opencensus/trace/BlankSpanTest.java +++ b/api/src/test/java/io/opencensus/trace/BlankSpanTest.java @@ -53,6 +53,7 @@ public class BlankSpanTest { BlankSpan.INSTANCE.addAnnotation("MyAnnotation", multipleAttributes); BlankSpan.INSTANCE.addAnnotation(Annotation.fromDescription("MyAnnotation")); BlankSpan.INSTANCE.addNetworkEvent(NetworkEvent.builder(NetworkEvent.Type.SENT, 1L).build()); + BlankSpan.INSTANCE.addMessageEvent(MessageEvent.builder(MessageEvent.Type.SENT, 1L).build()); BlankSpan.INSTANCE.addLink( Link.fromSpanContext(SpanContext.INVALID, Link.Type.CHILD_LINKED_SPAN)); BlankSpan.INSTANCE.setStatus(Status.OK); diff --git a/api/src/test/java/io/opencensus/trace/MessageEventTest.java b/api/src/test/java/io/opencensus/trace/MessageEventTest.java new file mode 100644 index 00000000..fde32fe6 --- /dev/null +++ b/api/src/test/java/io/opencensus/trace/MessageEventTest.java @@ -0,0 +1,84 @@ +/* + * Copyright 2018, OpenCensus Authors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package io.opencensus.trace; + +import static com.google.common.truth.Truth.assertThat; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; + +/** Unit tests for {@link MessageEvent}. */ +@RunWith(JUnit4.class) +public class MessageEventTest { + @Test(expected = NullPointerException.class) + public void buildMessageEvent_NullType() { + MessageEvent.builder(null, 1L).build(); + } + + @Test + public void buildMessageEvent_WithRequiredFields() { + MessageEvent messageEvent = MessageEvent.builder(MessageEvent.Type.SENT, 1L).build(); + assertThat(messageEvent.getType()).isEqualTo(MessageEvent.Type.SENT); + assertThat(messageEvent.getMessageId()).isEqualTo(1L); + assertThat(messageEvent.getUncompressedMessageSize()).isEqualTo(0L); + } + + @Test + public void buildMessageEvent_WithUncompressedMessageSize() { + MessageEvent messageEvent = + MessageEvent.builder(MessageEvent.Type.SENT, 1L).setUncompressedMessageSize(123L).build(); + assertThat(messageEvent.getType()).isEqualTo(MessageEvent.Type.SENT); + assertThat(messageEvent.getMessageId()).isEqualTo(1L); + assertThat(messageEvent.getUncompressedMessageSize()).isEqualTo(123L); + } + + @Test + public void buildMessageEvent_WithCompressedMessageSize() { + MessageEvent messageEvent = + MessageEvent.builder(MessageEvent.Type.SENT, 1L).setCompressedMessageSize(123L).build(); + assertThat(messageEvent.getType()).isEqualTo(MessageEvent.Type.SENT); + assertThat(messageEvent.getMessageId()).isEqualTo(1L); + assertThat(messageEvent.getCompressedMessageSize()).isEqualTo(123L); + } + + @Test + public void buildMessageEvent_WithAllValues() { + MessageEvent messageEvent = + MessageEvent.builder(MessageEvent.Type.RECEIVED, 1L) + .setUncompressedMessageSize(123L) + .setCompressedMessageSize(63L) + .build(); + assertThat(messageEvent.getType()).isEqualTo(MessageEvent.Type.RECEIVED); + assertThat(messageEvent.getMessageId()).isEqualTo(1L); + assertThat(messageEvent.getUncompressedMessageSize()).isEqualTo(123L); + assertThat(messageEvent.getCompressedMessageSize()).isEqualTo(63L); + } + + @Test + public void messageEvent_ToString() { + MessageEvent messageEvent = + MessageEvent.builder(MessageEvent.Type.SENT, 1L) + .setUncompressedMessageSize(123L) + .setCompressedMessageSize(63L) + .build(); + assertThat(messageEvent.toString()).contains("type=SENT"); + assertThat(messageEvent.toString()).contains("messageId=1"); + assertThat(messageEvent.toString()).contains("compressedMessageSize=63"); + assertThat(messageEvent.toString()).contains("uncompressedMessageSize=123"); + } +} diff --git a/api/src/test/java/io/opencensus/trace/NoopSpan.java b/api/src/test/java/io/opencensus/trace/NoopSpan.java index 0217529d..7c8d9b7a 100644 --- a/api/src/test/java/io/opencensus/trace/NoopSpan.java +++ b/api/src/test/java/io/opencensus/trace/NoopSpan.java @@ -45,6 +45,9 @@ public class NoopSpan extends Span { public void addNetworkEvent(NetworkEvent networkEvent) {} @Override + public void addMessageEvent(MessageEvent messageEvent) {} + + @Override public void addLink(Link link) {} @Override diff --git a/api/src/test/java/io/opencensus/trace/SpanTest.java b/api/src/test/java/io/opencensus/trace/SpanTest.java index 327b9abe..f7546ca4 100644 --- a/api/src/test/java/io/opencensus/trace/SpanTest.java +++ b/api/src/test/java/io/opencensus/trace/SpanTest.java @@ -98,4 +98,22 @@ public class SpanTest { span.end(); verify(span).end(same(EndSpanOptions.DEFAULT)); } + + @Test + public void addMessageEventDefaultImplementation() { + Span mockSpan = Mockito.mock(Span.class); + MessageEvent messageEvent = + MessageEvent.builder(MessageEvent.Type.SENT, 123) + .setUncompressedMessageSize(456) + .setCompressedMessageSize(789) + .build(); + NetworkEvent networkEvent = + NetworkEvent.builder(NetworkEvent.Type.SENT, 123) + .setUncompressedMessageSize(456) + .setCompressedMessageSize(789) + .build(); + Mockito.doCallRealMethod().when(mockSpan).addMessageEvent(messageEvent); + mockSpan.addMessageEvent(messageEvent); + verify(mockSpan).addNetworkEvent(eq(networkEvent)); + } } diff --git a/api/src/test/java/io/opencensus/trace/config/TraceConfigTest.java b/api/src/test/java/io/opencensus/trace/config/TraceConfigTest.java index ee80cab4..d48e0894 100644 --- a/api/src/test/java/io/opencensus/trace/config/TraceConfigTest.java +++ b/api/src/test/java/io/opencensus/trace/config/TraceConfigTest.java @@ -42,6 +42,7 @@ public class TraceConfigTest { .setMaxNumberOfAttributes(8) .setMaxNumberOfAnnotations(9) .setMaxNumberOfNetworkEvents(10) + .setMaxNumberOfMessageEvents(10) .setMaxNumberOfLinks(11) .build(); traceConfig.updateActiveTraceParams(traceParams); diff --git a/api/src/test/java/io/opencensus/trace/config/TraceParamsTest.java b/api/src/test/java/io/opencensus/trace/config/TraceParamsTest.java index 7ede0a29..6c216174 100644 --- a/api/src/test/java/io/opencensus/trace/config/TraceParamsTest.java +++ b/api/src/test/java/io/opencensus/trace/config/TraceParamsTest.java @@ -32,6 +32,7 @@ public class TraceParamsTest { assertThat(TraceParams.DEFAULT.getMaxNumberOfAttributes()).isEqualTo(32); assertThat(TraceParams.DEFAULT.getMaxNumberOfAnnotations()).isEqualTo(32); assertThat(TraceParams.DEFAULT.getMaxNumberOfNetworkEvents()).isEqualTo(128); + assertThat(TraceParams.DEFAULT.getMaxNumberOfMessageEvents()).isEqualTo(128); assertThat(TraceParams.DEFAULT.getMaxNumberOfLinks()).isEqualTo(128); } @@ -56,6 +57,11 @@ public class TraceParamsTest { } @Test(expected = IllegalArgumentException.class) + public void updateTraceParams_NonPositiveMaxNumberOfMessageEvents() { + TraceParams.DEFAULT.toBuilder().setMaxNumberOfMessageEvents(0).build(); + } + + @Test(expected = IllegalArgumentException.class) public void updateTraceParams_NonPositiveMaxNumberOfLinks() { TraceParams.DEFAULT.toBuilder().setMaxNumberOfLinks(0).build(); } @@ -68,13 +74,24 @@ public class TraceParamsTest { .setSampler(Samplers.alwaysSample()) .setMaxNumberOfAttributes(8) .setMaxNumberOfAnnotations(9) - .setMaxNumberOfNetworkEvents(10) + .setMaxNumberOfMessageEvents(10) .setMaxNumberOfLinks(11) .build(); assertThat(traceParams.getSampler()).isEqualTo(Samplers.alwaysSample()); assertThat(traceParams.getMaxNumberOfAttributes()).isEqualTo(8); assertThat(traceParams.getMaxNumberOfAnnotations()).isEqualTo(9); + // test maxNumberOfNetworkEvent can be set via maxNumberOfMessageEvent assertThat(traceParams.getMaxNumberOfNetworkEvents()).isEqualTo(10); + assertThat(traceParams.getMaxNumberOfMessageEvents()).isEqualTo(10); assertThat(traceParams.getMaxNumberOfLinks()).isEqualTo(11); } + + @Test + public void updateTraceParams_maxNumberOfNetworkEvents() { + TraceParams traceParams = + TraceParams.DEFAULT.toBuilder().setMaxNumberOfNetworkEvents(10).build(); + assertThat(traceParams.getMaxNumberOfNetworkEvents()).isEqualTo(10); + // test maxNumberOfMessageEvent can be set via maxNumberOfNetworkEvent + assertThat(traceParams.getMaxNumberOfMessageEvents()).isEqualTo(10); + } } diff --git a/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java b/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java index 5c8097fa..399b35e0 100644 --- a/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java +++ b/api/src/test/java/io/opencensus/trace/export/SpanDataTest.java @@ -24,6 +24,7 @@ import io.opencensus.trace.Annotation; import io.opencensus.trace.AttributeValue; import io.opencensus.trace.Link; import io.opencensus.trace.Link.Type; +import io.opencensus.trace.MessageEvent; import io.opencensus.trace.NetworkEvent; import io.opencensus.trace.SpanContext; import io.opencensus.trace.SpanId; @@ -60,6 +61,10 @@ public class SpanDataTest { NetworkEvent.builder(NetworkEvent.Type.RECV, 1).build(); private static final NetworkEvent sentNetworkEvent = NetworkEvent.builder(NetworkEvent.Type.SENT, 1).build(); + private static final MessageEvent recvMessageEvent = + MessageEvent.builder(MessageEvent.Type.RECEIVED, 1).build(); + private static final MessageEvent sentMessageEvent = + MessageEvent.builder(MessageEvent.Type.SENT, 1).build(); private static final Status status = Status.DEADLINE_EXCEEDED.withDescription("TooSlow"); private static final int CHILD_SPAN_COUNT = 13; private final Random random = new Random(1234); @@ -72,11 +77,14 @@ public class SpanDataTest { new ArrayList<TimedEvent<Annotation>>(); private final List<TimedEvent<NetworkEvent>> networkEventsList = new ArrayList<SpanData.TimedEvent<NetworkEvent>>(); + private final List<TimedEvent<MessageEvent>> messageEventsList = + new ArrayList<SpanData.TimedEvent<MessageEvent>>(); private final List<Link> linksList = new ArrayList<Link>(); private Attributes attributes; private TimedEvents<Annotation> annotations; private TimedEvents<NetworkEvent> networkEvents; + private TimedEvents<MessageEvent> messageEvents; private Links links; @Before @@ -90,6 +98,9 @@ public class SpanDataTest { networkEventsList.add(SpanData.TimedEvent.create(eventTimestamp1, recvNetworkEvent)); networkEventsList.add(SpanData.TimedEvent.create(eventTimestamp2, sentNetworkEvent)); networkEvents = TimedEvents.create(networkEventsList, 3); + messageEventsList.add(SpanData.TimedEvent.create(eventTimestamp1, recvMessageEvent)); + messageEventsList.add(SpanData.TimedEvent.create(eventTimestamp2, sentMessageEvent)); + messageEvents = TimedEvents.create(messageEventsList, 3); linksList.add(Link.fromSpanContext(spanContext, Type.CHILD_LINKED_SPAN)); links = Links.create(linksList, 0); } @@ -105,6 +116,37 @@ public class SpanDataTest { startTimestamp, attributes, annotations, + messageEvents, + links, + CHILD_SPAN_COUNT, + status, + endTimestamp); + assertThat(spanData.getContext()).isEqualTo(spanContext); + assertThat(spanData.getParentSpanId()).isEqualTo(parentSpanId); + assertThat(spanData.getHasRemoteParent()).isTrue(); + assertThat(spanData.getName()).isEqualTo(SPAN_NAME); + assertThat(spanData.getStartTimestamp()).isEqualTo(startTimestamp); + assertThat(spanData.getAttributes()).isEqualTo(attributes); + assertThat(spanData.getAnnotations()).isEqualTo(annotations); + assertThat(spanData.getNetworkEvents()).isEqualTo(networkEvents); + assertThat(spanData.getMessageEvents()).isEqualTo(messageEvents); + assertThat(spanData.getLinks()).isEqualTo(links); + assertThat(spanData.getChildSpanCount()).isEqualTo(CHILD_SPAN_COUNT); + assertThat(spanData.getStatus()).isEqualTo(status); + assertThat(spanData.getEndTimestamp()).isEqualTo(endTimestamp); + } + + @Test + public void spanData_Create_Compatibility() { + SpanData spanData = + SpanData.create( + spanContext, + parentSpanId, + true, + SPAN_NAME, + startTimestamp, + attributes, + annotations, networkEvents, links, CHILD_SPAN_COUNT, @@ -118,6 +160,7 @@ public class SpanDataTest { assertThat(spanData.getAttributes()).isEqualTo(attributes); assertThat(spanData.getAnnotations()).isEqualTo(annotations); assertThat(spanData.getNetworkEvents()).isEqualTo(networkEvents); + assertThat(spanData.getMessageEvents()).isEqualTo(messageEvents); assertThat(spanData.getLinks()).isEqualTo(links); assertThat(spanData.getChildSpanCount()).isEqualTo(CHILD_SPAN_COUNT); assertThat(spanData.getStatus()).isEqualTo(status); @@ -135,7 +178,7 @@ public class SpanDataTest { startTimestamp, attributes, annotations, - networkEvents, + messageEvents, links, null, null, @@ -148,6 +191,7 @@ public class SpanDataTest { assertThat(spanData.getAttributes()).isEqualTo(attributes); assertThat(spanData.getAnnotations()).isEqualTo(annotations); assertThat(spanData.getNetworkEvents()).isEqualTo(networkEvents); + assertThat(spanData.getMessageEvents()).isEqualTo(messageEvents); assertThat(spanData.getLinks()).isEqualTo(links); assertThat(spanData.getChildSpanCount()).isNull(); assertThat(spanData.getStatus()).isNull(); @@ -165,7 +209,7 @@ public class SpanDataTest { startTimestamp, Attributes.create(Collections.<String, AttributeValue>emptyMap(), 0), TimedEvents.create(Collections.<SpanData.TimedEvent<Annotation>>emptyList(), 0), - TimedEvents.create(Collections.<SpanData.TimedEvent<NetworkEvent>>emptyList(), 0), + TimedEvents.create(Collections.<SpanData.TimedEvent<MessageEvent>>emptyList(), 0), Links.create(Collections.<Link>emptyList(), 0), 0, status, @@ -178,6 +222,7 @@ public class SpanDataTest { assertThat(spanData.getAttributes().getAttributeMap().isEmpty()).isTrue(); assertThat(spanData.getAnnotations().getEvents().isEmpty()).isTrue(); assertThat(spanData.getNetworkEvents().getEvents().isEmpty()).isTrue(); + assertThat(spanData.getMessageEvents().getEvents().isEmpty()).isTrue(); assertThat(spanData.getLinks().getLinks().isEmpty()).isTrue(); assertThat(spanData.getChildSpanCount()).isEqualTo(0); assertThat(spanData.getStatus()).isEqualTo(status); @@ -195,7 +240,7 @@ public class SpanDataTest { startTimestamp, attributes, annotations, - networkEvents, + messageEvents, links, CHILD_SPAN_COUNT, status, @@ -209,7 +254,7 @@ public class SpanDataTest { startTimestamp, attributes, annotations, - networkEvents, + messageEvents, links, CHILD_SPAN_COUNT, status, @@ -223,7 +268,7 @@ public class SpanDataTest { startTimestamp, Attributes.create(Collections.<String, AttributeValue>emptyMap(), 0), TimedEvents.create(Collections.<SpanData.TimedEvent<Annotation>>emptyList(), 0), - TimedEvents.create(Collections.<SpanData.TimedEvent<NetworkEvent>>emptyList(), 0), + TimedEvents.create(Collections.<SpanData.TimedEvent<MessageEvent>>emptyList(), 0), Links.create(Collections.<Link>emptyList(), 0), 0, status, @@ -245,7 +290,7 @@ public class SpanDataTest { startTimestamp, attributes, annotations, - networkEvents, + messageEvents, links, CHILD_SPAN_COUNT, status, @@ -257,7 +302,7 @@ public class SpanDataTest { assertThat(spanDataString).contains(startTimestamp.toString()); assertThat(spanDataString).contains(attributes.toString()); assertThat(spanDataString).contains(annotations.toString()); - assertThat(spanDataString).contains(networkEvents.toString()); + assertThat(spanDataString).contains(messageEvents.toString()); assertThat(spanDataString).contains(links.toString()); assertThat(spanDataString).contains(status.toString()); assertThat(spanDataString).contains(endTimestamp.toString()); |