Some more test coverage for OpenTelemetrySDK. (#2130)

* Some more test coverage for OpenTelemetrySDK.

* Fix assertion

* Update OpenTelemetrySdk.java
This commit is contained in:
Anuraag Agrawal 2020-11-26 11:12:56 +09:00 committed by GitHub
parent 883267423e
commit 14d23dcd46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 4 deletions

View File

@ -219,10 +219,6 @@ public final class OpenTelemetrySdk extends DefaultOpenTelemetry {
private TracerSdkProvider buildTracerProvider() { private TracerSdkProvider buildTracerProvider() {
TracerProvider tracerProvider = super.tracerProvider; TracerProvider tracerProvider = super.tracerProvider;
if (tracerProvider != null) { if (tracerProvider != null) {
if (!(tracerProvider instanceof TracerSdkProvider)) {
throw new IllegalStateException(
"The OpenTelemetrySdk can only be configured with a TracerSdkProvider");
}
return (TracerSdkProvider) tracerProvider; return (TracerSdkProvider) tracerProvider;
} }
TracerSdkProvider.Builder tracerProviderBuilder = TracerSdkProvider.builder(); TracerSdkProvider.Builder tracerProviderBuilder = TracerSdkProvider.builder();

View File

@ -6,6 +6,8 @@
package io.opentelemetry.sdk; package io.opentelemetry.sdk;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatCode;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.assertj.core.api.InstanceOfAssertFactories.type; import static org.assertj.core.api.InstanceOfAssertFactories.type;
import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -37,6 +39,24 @@ class OpenTelemetrySdkTest {
@Mock private ContextPropagators propagators; @Mock private ContextPropagators propagators;
@Mock private Clock clock; @Mock private Clock clock;
@Test
void testGetGlobal() {
assertThat(OpenTelemetrySdk.get()).isSameAs(OpenTelemetry.get());
}
@Test
void testGetTracerManagementWhenNotTracerSdk() {
OpenTelemetry previous = OpenTelemetry.get();
assertThatCode(OpenTelemetrySdk::getGlobalTracerManagement).doesNotThrowAnyException();
try {
OpenTelemetry.set(OpenTelemetry.builder().setTracerProvider(tracerProvider).build());
assertThatThrownBy(OpenTelemetrySdk::getGlobalTracerManagement)
.isInstanceOf(IllegalStateException.class);
} finally {
OpenTelemetry.set(previous);
}
}
@Test @Test
void testGlobalDefault() { void testGlobalDefault() {
assertThat(((TracerSdkProvider) OpenTelemetrySdk.getGlobalTracerManagement()).get("")) assertThat(((TracerSdkProvider) OpenTelemetrySdk.getGlobalTracerManagement()).get(""))