1717package com .splunk .opentelemetry ;
1818
1919import static com .splunk .opentelemetry .SplunkTracerCustomizer .ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY ;
20+ import static org .junit .jupiter .api .Assertions .assertEquals ;
2021import static org .mockito .ArgumentMatchers .isA ;
22+ import static org .mockito .BDDMockito .given ;
2123import static org .mockito .BDDMockito .then ;
2224
2325import io .opentelemetry .sdk .trace .TracerSdkProvider ;
26+ import io .opentelemetry .sdk .trace .config .TraceConfig ;
27+ import io .opentelemetry .sdk .trace .samplers .Sampler ;
2428import org .junit .jupiter .api .Test ;
2529import org .junit .jupiter .api .extension .ExtendWith ;
30+ import org .mockito .ArgumentCaptor ;
31+ import org .mockito .Captor ;
2632import org .mockito .Mock ;
2733import org .mockito .junit .jupiter .MockitoExtension ;
2834
2935@ ExtendWith (MockitoExtension .class )
3036public class SplunkTracerCustomizerTest {
3137 @ Mock private TracerSdkProvider tracerSdkProvider ;
3238
39+ @ Captor private ArgumentCaptor <TraceConfig > traceConfigCaptor ;
40+
3341 @ Test
3442 public void shouldAddSpanProcessorsIfPropertiesAreSetToTrue () {
3543
3644 // given
3745 SplunkTracerCustomizer underTest = new SplunkTracerCustomizer ();
3846 System .setProperty (ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY , "true" );
3947
48+ TraceConfig traceConfig = TraceConfig .getDefault ();
49+ given (tracerSdkProvider .getActiveTraceConfig ()).willReturn (traceConfig );
50+
4051 // when
4152 underTest .configure (tracerSdkProvider );
4253
4354 // then
4455 then (tracerSdkProvider ).should ().addSpanProcessor (isA (JdbcSpanRenamingProcessor .class ));
56+ then (tracerSdkProvider ).should ().updateActiveTraceConfig (traceConfigCaptor .capture ());
4557 then (tracerSdkProvider ).shouldHaveNoMoreInteractions ();
58+
59+ assertEquals (Sampler .alwaysOn (), traceConfigCaptor .getValue ().getSampler ());
4660 }
4761
4862 @ Test
@@ -52,25 +66,36 @@ public void shouldNotAddSpanProcessorsIfPropertiesAreSetToAnythingElse() {
5266 SplunkTracerCustomizer underTest = new SplunkTracerCustomizer ();
5367 System .setProperty (ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY , "whatever" );
5468
69+ TraceConfig traceConfig = TraceConfig .getDefault ();
70+ given (tracerSdkProvider .getActiveTraceConfig ()).willReturn (traceConfig );
71+
5572 // when
5673 underTest .configure (tracerSdkProvider );
5774
5875 // then
59- then (tracerSdkProvider ).shouldHaveNoInteractions ();
76+ then (tracerSdkProvider ).should ().updateActiveTraceConfig (traceConfigCaptor .capture ());
77+ then (tracerSdkProvider ).shouldHaveNoMoreInteractions ();
78+
79+ assertEquals (Sampler .alwaysOn (), traceConfigCaptor .getValue ().getSampler ());
6080 }
6181
6282 @ Test
6383 public void shouldConfigureTracerSdkForDefaultValues () {
64-
6584 // given
6685 SplunkTracerCustomizer underTest = new SplunkTracerCustomizer ();
6786 System .clearProperty (ENABLE_JDBC_SPAN_LOW_CARDINALITY_NAME_PROPERTY );
6887
88+ TraceConfig traceConfig = TraceConfig .getDefault ();
89+ given (tracerSdkProvider .getActiveTraceConfig ()).willReturn (traceConfig );
90+
6991 // when
7092 underTest .configure (tracerSdkProvider );
7193
7294 // then
7395 then (tracerSdkProvider ).should ().addSpanProcessor (isA (JdbcSpanRenamingProcessor .class ));
96+ then (tracerSdkProvider ).should ().updateActiveTraceConfig (traceConfigCaptor .capture ());
7497 then (tracerSdkProvider ).shouldHaveNoMoreInteractions ();
98+
99+ assertEquals (Sampler .alwaysOn (), traceConfigCaptor .getValue ().getSampler ());
75100 }
76101}
0 commit comments