Skip to content

Commit 138cce0

Browse files
committed
Update MessagingSpanNameExtractorTest
1 parent a086a82 commit 138cce0

File tree

1 file changed

+52
-6
lines changed

1 file changed

+52
-6
lines changed

instrumentation-api-incubator/src/test/java/io/opentelemetry/instrumentation/api/incubator/semconv/messaging/MessagingSpanNameExtractorTest.java

+52-6
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@
66
package io.opentelemetry.instrumentation.api.incubator.semconv.messaging;
77

88
import static org.junit.jupiter.api.Assertions.assertEquals;
9+
import static org.mockito.Mockito.lenient;
910
import static org.mockito.Mockito.when;
1011

1112
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
13+
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
14+
import io.opentelemetry.instrumentation.api.semconv.network.ServerAttributesGetter;
1215
import java.util.stream.Stream;
1316
import org.junit.jupiter.api.extension.ExtendWith;
1417
import org.junit.jupiter.params.ParameterizedTest;
@@ -21,25 +24,37 @@
2124
class MessagingSpanNameExtractorTest {
2225

2326
@Mock MessagingAttributesGetter<Message, Void> getter;
27+
@Mock ServerAttributesGetter<Message> serverAttributesGetter;
2428

2529
@ParameterizedTest
2630
@MethodSource("spanNameParams")
2731
void shouldExtractSpanName(
2832
boolean isTemporaryQueue,
33+
boolean isAnonymous,
2934
String destinationName,
35+
String destinationTemplate,
3036
MessageOperation operation,
3137
String expectedSpanName) {
3238
// given
3339
Message message = new Message();
3440

41+
when(getter.getDestinationTemplate(message)).thenReturn(destinationTemplate);
42+
if (isAnonymous) {
43+
lenient().when(getter.isAnonymousDestination(message)).thenReturn(true);
44+
}
45+
3546
if (isTemporaryQueue) {
36-
when(getter.isTemporaryDestination(message)).thenReturn(true);
47+
lenient().when(getter.isTemporaryDestination(message)).thenReturn(true);
3748
} else {
38-
when(getter.getDestination(message)).thenReturn(destinationName);
49+
lenient().when(getter.getDestination(message)).thenReturn(destinationName);
3950
}
51+
when(getter.getOperationName(message)).thenReturn(operation.operationType());
52+
53+
lenient().when(serverAttributesGetter.getServerPort(message)).thenReturn(1234);
54+
lenient().when(serverAttributesGetter.getServerAddress(message)).thenReturn("127.0.0.1");
4055

4156
SpanNameExtractor<Message> underTest =
42-
MessagingSpanNameExtractor.create(getter, operation, null);
57+
MessagingSpanNameExtractor.create(getter, operation, serverAttributesGetter);
4358

4459
// when
4560
String spanName = underTest.extract(message);
@@ -50,10 +65,41 @@ void shouldExtractSpanName(
5065

5166
@SuppressWarnings("deprecation") // using deprecated semconv
5267
static Stream<Arguments> spanNameParams() {
68+
if (SemconvStability.emitStableMessagingSemconv()) {
69+
return Stream.of(
70+
Arguments.of(
71+
false,
72+
false,
73+
"destination/1",
74+
"destination/{}",
75+
MessageOperation.PUBLISH,
76+
"publish destination/{}"),
77+
Arguments.of(
78+
false,
79+
false,
80+
"destination/1",
81+
null,
82+
MessageOperation.PUBLISH,
83+
"publish destination/1"),
84+
Arguments.of(true, false, null, "temp", MessageOperation.PROCESS, "process temp"),
85+
Arguments.of(true, false, null, null, MessageOperation.PROCESS, "process (temporary)"),
86+
Arguments.of(false, true, null, "anon", MessageOperation.PROCESS, "process anon"),
87+
Arguments.of(false, true, null, null, MessageOperation.PROCESS, "process (anonymous)"),
88+
Arguments.of(true, true, null, null, MessageOperation.PROCESS, "process (temporary)"),
89+
Arguments.of(
90+
false, false, null, null, MessageOperation.RECEIVE, "receive 127.0.0.1:1234"));
91+
}
5392
return Stream.of(
54-
Arguments.of(false, "destination", MessageOperation.PUBLISH, "destination publish"),
55-
Arguments.of(true, null, MessageOperation.PROCESS, "(temporary) process"),
56-
Arguments.of(false, null, MessageOperation.RECEIVE, "unknown receive"));
93+
Arguments.of(
94+
false,
95+
false,
96+
"destination",
97+
"not used",
98+
MessageOperation.PUBLISH,
99+
"destination publish"),
100+
Arguments.of(
101+
true, false, null, "not used", MessageOperation.PROCESS, "(temporary) process"),
102+
Arguments.of(false, false, null, "not used", MessageOperation.RECEIVE, "unknown receive"));
57103
}
58104

59105
static class Message {}

0 commit comments

Comments
 (0)