1414import io .opentelemetry .api .metrics .MeterProvider ;
1515import io .opentelemetry .api .trace .TracerProvider ;
1616import io .opentelemetry .context .propagation .ContextPropagators ;
17- import java .util .concurrent .atomic .AtomicInteger ;
18- import java .util .function .Supplier ;
1917import org .junit .jupiter .api .AfterEach ;
2018import org .junit .jupiter .api .BeforeAll ;
2119import org .junit .jupiter .api .Test ;
@@ -88,9 +86,9 @@ void independentNonGlobalPropagators() {
8886
8987 @ Test
9088 void setThenSet () {
91- assertThat (GlobalOpenTelemetry .getOrNoop ()).isSameAs ( OpenTelemetry . noop () );
89+ assertThat (GlobalOpenTelemetry .isSet ()).isFalse ( );
9290 setOpenTelemetry ();
93- assertThat (GlobalOpenTelemetry .getOrNoop ()).isNotSameAs ( OpenTelemetry . noop () );
91+ assertThat (GlobalOpenTelemetry .isSet ()).isTrue ( );
9492 assertThatThrownBy (() -> GlobalOpenTelemetry .set (getOpenTelemetry ()))
9593 .isInstanceOf (IllegalStateException .class )
9694 .hasMessageContaining ("GlobalOpenTelemetry.set has already been called" )
@@ -99,7 +97,9 @@ void setThenSet() {
9997
10098 @ Test
10199 void getThenSet () {
100+ assertThat (GlobalOpenTelemetry .isSet ()).isFalse ();
102101 assertThat (GlobalOpenTelemetry .getOrNoop ()).isSameAs (OpenTelemetry .noop ());
102+
103103 // Calling GlobalOpenTelemetry.get() has the side affect of setting GlobalOpenTelemetry to an
104104 // (obfuscated) noop.
105105 // Call GlobalOpenTelemetry.get() using a utility method so we can later assert it was
@@ -111,7 +111,10 @@ void getThenSet() {
111111 .isEqualTo ("io.opentelemetry.api.GlobalOpenTelemetry$ObfuscatedOpenTelemetry" ))
112112 .extracting ("delegate" )
113113 .isSameAs (OpenTelemetry .noop ());
114+
115+ assertThat (GlobalOpenTelemetry .isSet ()).isTrue ();
114116 assertThat (GlobalOpenTelemetry .getOrNoop ()).isNotSameAs (OpenTelemetry .noop ());
117+
115118 assertThatThrownBy (() -> GlobalOpenTelemetry .set (getOpenTelemetry ()))
116119 .isInstanceOf (IllegalStateException .class )
117120 .hasMessageContaining ("GlobalOpenTelemetry.set has already been called" )
@@ -131,42 +134,6 @@ void getOrNoop() {
131134 assertThat (GlobalOpenTelemetry .getOrNoop ()).isNotSameAs (OpenTelemetry .noop ());
132135 }
133136
134- @ Test
135- void getOrSet_NotPreviouslySet () {
136- AtomicInteger supplierCallCount = new AtomicInteger ();
137- Supplier <OpenTelemetry > supplier =
138- () -> {
139- supplierCallCount .incrementAndGet ();
140- return OpenTelemetry .noop ();
141- };
142-
143- assertThat (GlobalOpenTelemetry .getOrSet (supplier )).isSameAs (OpenTelemetry .noop ());
144- assertThat (supplierCallCount .get ()).isEqualTo (1 );
145-
146- // The second time getOrSet is called, we get an obfuscated instance
147- assertThat (GlobalOpenTelemetry .getOrSet (supplier ).getClass ().getName ())
148- .isEqualTo ("io.opentelemetry.api.GlobalOpenTelemetry$ObfuscatedOpenTelemetry" );
149- assertThat (supplierCallCount .get ()).isEqualTo (1 );
150- }
151-
152- @ Test
153- void getOrSet_PreviouslySet () {
154- setOpenTelemetry ();
155-
156- AtomicInteger supplierCallCount = new AtomicInteger ();
157- Supplier <OpenTelemetry > supplier =
158- () -> {
159- supplierCallCount .incrementAndGet ();
160- return OpenTelemetry .noop ();
161- };
162-
163- assertThat (GlobalOpenTelemetry .getOrSet (supplier ).getClass ().getName ())
164- .isEqualTo ("io.opentelemetry.api.GlobalOpenTelemetry$ObfuscatedOpenTelemetry" );
165- assertThat (GlobalOpenTelemetry .getOrSet (supplier ).getClass ().getName ())
166- .isEqualTo ("io.opentelemetry.api.GlobalOpenTelemetry$ObfuscatedOpenTelemetry" );
167- assertThat (supplierCallCount .get ()).isEqualTo (0 );
168- }
169-
170137 @ Test
171138 void toString_noop_Valid () {
172139 assertThat (getOpenTelemetry ().toString ())
0 commit comments