2222
2323import com .splunk .opentelemetry .testing .declarativeconfig .DeclarativeConfigTestUtil ;
2424import io .opentelemetry .instrumentation .testing .internal .AutoCleanupExtension ;
25+ import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .BatchSpanProcessorModel ;
2526import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .OpenTelemetryConfigurationModel ;
27+ import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .SimpleSpanProcessorModel ;
28+ import io .opentelemetry .sdk .extension .incubator .fileconfig .internal .model .SpanProcessorModel ;
2629import java .io .IOException ;
2730import java .nio .file .Path ;
31+ import java .util .List ;
2832import java .util .Set ;
29- import org .assertj .core .util .Sets ;
3033import org .junit .jupiter .api .AfterEach ;
3134import org .junit .jupiter .api .Test ;
3235import org .junit .jupiter .api .extension .RegisterExtension ;
@@ -57,10 +60,11 @@ void shouldDoNothingIfProfilerIsNotEnabled(@TempDir Path tempDir) throws IOExcep
5760 // then
5861 assertThat (model ).isNotNull ();
5962 assertThat (model .getPropagator ()).isNull ();
63+ assertThat (model .getTracerProvider ()).isNull ();
6064 }
6165
6266 @ Test
63- void shouldAddRequiredComponents () {
67+ void shouldAddRequiredPropagator () {
6468 // given
6569 String yaml =
6670 """
@@ -75,14 +79,6 @@ void shouldAddRequiredComponents() {
7579 OpenTelemetryConfigurationModel model = getCustomizedModel (yaml );
7680
7781 // then
78- assertThat (model ).isNotNull ();
79- assertThat (model .getTracerProvider ()).isNotNull ();
80-
81- assertThat (model .getTracerProvider ().getProcessors ()).hasSize (1 );
82- assertThat (model .getTracerProvider ().getProcessors ())
83- .extracting (processor -> processor .getAdditionalProperties ().keySet ())
84- .containsOnlyOnce (Sets .set ("sdk_shutdown_hook" ));
85-
8682 assertThat (model .getPropagator ().getCompositeList ()).isEqualTo ("splunk_snapshot_volume" );
8783 }
8884
@@ -110,7 +106,42 @@ void shouldKeepPropagatorsDefinedInCompositeList() {
110106 }
111107
112108 @ Test
113- void shouldInitialize () {
109+ void shouldAddSpanProcessors () {
110+ // given
111+ String yaml =
112+ """
113+ file_format: "1.0-rc.3"
114+ tracer_provider:
115+ processors:
116+ - batch:
117+ - simple:
118+ distribution:
119+ splunk:
120+ profiling:
121+ callgraphs:
122+ """ ;
123+
124+ // when
125+ OpenTelemetryConfigurationModel model = getCustomizedModel (yaml );
126+
127+ // then
128+ List <SpanProcessorModel > expectedProcessors =
129+ List .of (
130+ new SpanProcessorModel ().withBatch (new BatchSpanProcessorModel ()),
131+ new SpanProcessorModel ().withSimple (new SimpleSpanProcessorModel ()),
132+ new SpanProcessorModel ()
133+ .withAdditionalProperty (SnapshotProfilingSpanProcessorComponentProvider .NAME , null ),
134+ new SpanProcessorModel ()
135+ .withAdditionalProperty (SdkShutdownHookComponentProvider .NAME , null ));
136+
137+ assertThat (model ).isNotNull ();
138+ assertThat (model .getTracerProvider ()).isNotNull ();
139+ assertThat (model .getTracerProvider ().getProcessors ()).hasSize (4 );
140+ assertThat (model .getTracerProvider ().getProcessors ()).containsAll (expectedProcessors );
141+ }
142+
143+ @ Test
144+ void shouldInitializeActiveSpansTracking () {
114145 // given
115146 OpenTelemetryConfigurationModel model =
116147 DeclarativeConfigTestUtil .parse (
0 commit comments