|
22 | 22 | import static com.splunk.opentelemetry.appd.AppdBonusSpanProcessor.APPD_ATTR_BT;
|
23 | 23 | import static com.splunk.opentelemetry.appd.AppdBonusSpanProcessor.APPD_ATTR_TIER;
|
24 | 24 | import static org.mockito.Mockito.mock;
|
| 25 | +import static org.mockito.Mockito.never; |
25 | 26 | import static org.mockito.Mockito.verify;
|
26 | 27 | import static org.mockito.Mockito.when;
|
27 | 28 |
|
| 29 | +import io.opentelemetry.api.trace.SpanContext; |
28 | 30 | import io.opentelemetry.context.Context;
|
29 | 31 | import io.opentelemetry.sdk.trace.ReadWriteSpan;
|
30 | 32 | import org.junit.jupiter.api.Test;
|
31 | 33 |
|
32 | 34 | class AppdBonusSpanProcessorTest {
|
33 | 35 |
|
34 | 36 | @Test
|
35 |
| - void onStart() { |
| 37 | + void shouldSetAppdAttributesOnRootSpan() { |
| 38 | + // Given |
36 | 39 | Context context = mock();
|
37 |
| - |
38 | 40 | AppdBonusContext appdContext = new AppdBonusContext("myacct", "myapp", "mybt", "mytier");
|
39 |
| - ReadWriteSpan span = mock(); |
40 |
| - |
41 | 41 | when(context.get(CONTEXT_KEY)).thenReturn(appdContext);
|
42 | 42 |
|
| 43 | + ReadWriteSpan span = mock(); |
| 44 | + SpanContext parentSpanContext = mock(SpanContext.class); |
| 45 | + when(parentSpanContext.isValid()).thenReturn(false); |
| 46 | + when(span.getParentSpanContext()).thenReturn(parentSpanContext); |
| 47 | + |
43 | 48 | AppdBonusSpanProcessor testClass = new AppdBonusSpanProcessor();
|
| 49 | + |
| 50 | + // When |
44 | 51 | testClass.apply(context, span);
|
45 | 52 |
|
| 53 | + // Then |
46 | 54 | verify(span).setAttribute(APPD_ATTR_ACCT, "myacct");
|
47 | 55 | verify(span).setAttribute(APPD_ATTR_APP, "myapp");
|
48 | 56 | verify(span).setAttribute(APPD_ATTR_BT, "mybt");
|
49 | 57 | verify(span).setAttribute(APPD_ATTR_TIER, "mytier");
|
50 | 58 | }
|
| 59 | + |
| 60 | + @Test |
| 61 | + void shouldNotSetAppdAttributesOnNestedSpans() { |
| 62 | + // Given |
| 63 | + Context context = mock(); |
| 64 | + AppdBonusContext appdContext = new AppdBonusContext("myacct", "myapp", "mybt", "mytier"); |
| 65 | + when(context.get(CONTEXT_KEY)).thenReturn(appdContext); |
| 66 | + |
| 67 | + ReadWriteSpan span = mock(); |
| 68 | + SpanContext parentSpanContext = mock(SpanContext.class); |
| 69 | + when(parentSpanContext.isValid()).thenReturn(true); |
| 70 | + when(parentSpanContext.isRemote()).thenReturn(false); |
| 71 | + when(span.getParentSpanContext()).thenReturn(parentSpanContext); |
| 72 | + |
| 73 | + AppdBonusSpanProcessor testClass = new AppdBonusSpanProcessor(); |
| 74 | + |
| 75 | + // When |
| 76 | + testClass.apply(context, span); |
| 77 | + |
| 78 | + // Then |
| 79 | + verify(span, never()).setAttribute(APPD_ATTR_ACCT, "myacct"); |
| 80 | + verify(span, never()).setAttribute(APPD_ATTR_APP, "myapp"); |
| 81 | + verify(span, never()).setAttribute(APPD_ATTR_BT, "mybt"); |
| 82 | + verify(span, never()).setAttribute(APPD_ATTR_TIER, "mytier"); |
| 83 | + } |
51 | 84 | }
|
0 commit comments