-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeclarativeConfigPropertiesBridgeBuilderTest.java
More file actions
90 lines (73 loc) · 3.97 KB
/
Copy pathDeclarativeConfigPropertiesBridgeBuilderTest.java
File metadata and controls
90 lines (73 loc) · 3.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
package io.opentelemetry.instrumentation.config.bridge;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import io.opentelemetry.api.incubator.config.ConfigProvider;
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
import io.opentelemetry.sdk.internal.ExtendedOpenTelemetrySdk;
import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import org.mockito.Mockito;
@SuppressWarnings({"DoNotMockAutoValue", "deprecation"})
class DeclarativeConfigPropertiesBridgeBuilderTest {
@Test
void shouldUseConfigPropertiesForAutoConfiguration() {
ConfigProperties configPropertiesMock = mock(ConfigProperties.class);
AutoConfiguredOpenTelemetrySdk sdkMock = mock(AutoConfiguredOpenTelemetrySdk.class);
try (MockedStatic<AutoConfigureUtil> autoConfigureUtilMock =
Mockito.mockStatic(AutoConfigureUtil.class)) {
autoConfigureUtilMock
.when(() -> AutoConfigureUtil.getConfig(sdkMock))
.thenReturn(configPropertiesMock);
ConfigProperties configProperties =
new DeclarativeConfigPropertiesBridgeBuilder().build(sdkMock);
assertThat(configProperties).isSameAs(configPropertiesMock);
}
}
@Test
void shouldUseConfigProviderForDeclarativeConfiguration() {
String propertyName = "testProperty";
String expectedValue = "the value";
DeclarativeConfigProperties javaNodeMock = mock(DeclarativeConfigProperties.class);
when(javaNodeMock.getString(propertyName)).thenReturn(expectedValue);
DeclarativeConfigProperties instrumentationConfigMock = mock(DeclarativeConfigProperties.class);
when(instrumentationConfigMock.getStructured(eq("java"))).thenReturn(javaNodeMock);
ConfigProvider configProviderMock = mock(ConfigProvider.class);
when(configProviderMock.getInstrumentationConfig()).thenReturn(instrumentationConfigMock);
AutoConfiguredOpenTelemetrySdk sdkMock = mock(AutoConfiguredOpenTelemetrySdk.class);
ExtendedOpenTelemetrySdk extendedOpenTelemetrySdk = mock(ExtendedOpenTelemetrySdk.class);
when(sdkMock.getOpenTelemetrySdk()).thenReturn(extendedOpenTelemetrySdk);
when(extendedOpenTelemetrySdk.getConfigProvider()).thenReturn(configProviderMock);
try (MockedStatic<AutoConfigureUtil> autoConfigureUtilMock =
Mockito.mockStatic(AutoConfigureUtil.class)) {
autoConfigureUtilMock.when(() -> AutoConfigureUtil.getConfig(sdkMock)).thenReturn(null);
ConfigProperties configProperties =
new DeclarativeConfigPropertiesBridgeBuilder().build(sdkMock);
assertThat(configProperties.getString(propertyName)).isEqualTo(expectedValue);
}
}
@Test
void shouldUseConfigProviderForDeclarativeConfiguration_noInstrumentationConfig() {
AutoConfiguredOpenTelemetrySdk sdkMock = mock(AutoConfiguredOpenTelemetrySdk.class);
ExtendedOpenTelemetrySdk extendedOpenTelemetrySdk = mock(ExtendedOpenTelemetrySdk.class);
when(sdkMock.getOpenTelemetrySdk()).thenReturn(extendedOpenTelemetrySdk);
ConfigProvider configProviderMock = mock(ConfigProvider.class);
when(extendedOpenTelemetrySdk.getConfigProvider()).thenReturn(configProviderMock);
when(configProviderMock.getInstrumentationConfig()).thenReturn(null);
try (MockedStatic<AutoConfigureUtil> autoConfigureUtilMock =
Mockito.mockStatic(AutoConfigureUtil.class)) {
autoConfigureUtilMock.when(() -> AutoConfigureUtil.getConfig(sdkMock)).thenReturn(null);
ConfigProperties configProperties =
new DeclarativeConfigPropertiesBridgeBuilder().build(sdkMock);
assertThat(configProperties.getString("testProperty")).isNull();
}
}
}