Skip to content

Commit 0173fdc

Browse files
committed
Udpate unit test
1 parent 6a06471 commit 0173fdc

File tree

1 file changed

+27
-11
lines changed

1 file changed

+27
-11
lines changed

gcp-auth-extension/src/test/java/io/opentelemetry/contrib/gcp/auth/GcpAuthAutoConfigurationCustomizerProviderTest.java

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import static io.opentelemetry.contrib.gcp.auth.GcpAuthAutoConfigurationCustomizerProvider.QUOTA_USER_PROJECT_HEADER;
1010
import static org.assertj.core.api.Assertions.assertThat;
1111
import static org.junit.jupiter.api.Assertions.assertEquals;
12+
import static org.junit.jupiter.api.Assertions.assertThrows;
1213
import static org.junit.jupiter.api.Assertions.assertTrue;
1314

1415
import com.google.auth.oauth2.AccessToken;
@@ -28,6 +29,7 @@
2829
import io.opentelemetry.sdk.autoconfigure.internal.ComponentLoader;
2930
import io.opentelemetry.sdk.autoconfigure.internal.SpiHelper;
3031
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
32+
import io.opentelemetry.sdk.autoconfigure.spi.ConfigurationException;
3133
import io.opentelemetry.sdk.autoconfigure.spi.traces.ConfigurableSpanExporterProvider;
3234
import io.opentelemetry.sdk.common.CompletableResultCode;
3335
import io.opentelemetry.sdk.trace.data.SpanData;
@@ -77,20 +79,17 @@ class GcpAuthAutoConfigurationCustomizerProviderTest {
7779
"foo=bar");
7880

7981
@BeforeEach
80-
@SuppressWarnings("CannotMockMethod")
8182
public void setup() {
8283
MockitoAnnotations.openMocks(this);
83-
Mockito.when(mockedGoogleCredentials.getQuotaProjectId())
84-
.thenReturn(DUMMY_GCP_QUOTA_PROJECT_ID);
85-
Mockito.when(mockedGoogleCredentials.getAccessToken())
86-
.thenReturn(new AccessToken("fake", Date.from(Instant.now())));
8784
}
8885

8986
@Test
9087
public void testCustomizerOtlpHttp() {
9188
// Set resource project system property
92-
System.setProperty("google.cloud.project", DUMMY_GCP_RESOURCE_PROJECT_ID);
89+
System.setProperty(
90+
ConfigurableOption.GOOGLE_CLOUD_PROJECT.getSystemProperty(), DUMMY_GCP_RESOURCE_PROJECT_ID);
9391
// Prepare mocks
92+
prepareMockBehaviorForGoogleCredentials();
9493
OtlpHttpSpanExporter mockOtlpHttpSpanExporter = Mockito.mock(OtlpHttpSpanExporter.class);
9594
OtlpHttpSpanExporterBuilder otlpSpanExporterBuilder = OtlpHttpSpanExporter.builder();
9695
OtlpHttpSpanExporterBuilder spyOtlpHttpSpanExporterBuilder =
@@ -123,8 +122,7 @@ public void testCustomizerOtlpHttp() {
123122
Mockito.verify(spyOtlpHttpSpanExporterBuilder, Mockito.times(1))
124123
.setHeaders(headerSupplierCaptor.capture());
125124
assertEquals(2, headerSupplierCaptor.getValue().get().size());
126-
assertThat(verifyAuthHeadersQuotaProjectPresent(headerSupplierCaptor.getValue().get()))
127-
.isTrue();
125+
assertThat(authHeadersQuotaProjectIsPresent(headerSupplierCaptor.getValue().get())).isTrue();
128126

129127
Mockito.verify(mockOtlpHttpSpanExporter, Mockito.atLeast(1)).export(Mockito.anyCollection());
130128

@@ -146,8 +144,10 @@ public void testCustomizerOtlpHttp() {
146144
@Test
147145
public void testCustomizerOtlpGrpc() {
148146
// Set resource project system property
149-
System.setProperty("google.cloud.project", DUMMY_GCP_RESOURCE_PROJECT_ID);
147+
System.setProperty(
148+
ConfigurableOption.GOOGLE_CLOUD_PROJECT.getSystemProperty(), DUMMY_GCP_RESOURCE_PROJECT_ID);
150149
// Prepare mocks
150+
prepareMockBehaviorForGoogleCredentials();
151151
OtlpGrpcSpanExporter mockOtlpGrpcSpanExporter = Mockito.mock(OtlpGrpcSpanExporter.class);
152152
OtlpGrpcSpanExporterBuilder otlpSpanExporterBuilder = OtlpGrpcSpanExporter.builder();
153153
OtlpGrpcSpanExporterBuilder spyOtlpGrpcSpanExporterBuilder =
@@ -179,7 +179,7 @@ public void testCustomizerOtlpGrpc() {
179179
Mockito.verify(spyOtlpGrpcSpanExporterBuilder, Mockito.times(1))
180180
.setHeaders(headerSupplierCaptor.capture());
181181
assertEquals(2, headerSupplierCaptor.getValue().get().size());
182-
verifyAuthHeadersQuotaProjectPresent(headerSupplierCaptor.getValue().get());
182+
assertThat(authHeadersQuotaProjectIsPresent(headerSupplierCaptor.getValue().get())).isTrue();
183183

184184
Mockito.verify(mockOtlpGrpcSpanExporter, Mockito.atLeast(1)).export(Mockito.anyCollection());
185185

@@ -198,6 +198,22 @@ public void testCustomizerOtlpGrpc() {
198198
}
199199
}
200200

201+
@Test
202+
public void testCustomizerFailWithMissingResourceProject() {
203+
OtlpGrpcSpanExporter mockOtlpGrpcSpanExporter = Mockito.mock(OtlpGrpcSpanExporter.class);
204+
assertThrows(
205+
ConfigurationException.class,
206+
() -> buildOpenTelemetrySdkWithExporter(mockOtlpGrpcSpanExporter));
207+
}
208+
209+
@SuppressWarnings("CannotMockMethod")
210+
private void prepareMockBehaviorForGoogleCredentials() {
211+
Mockito.when(mockedGoogleCredentials.getQuotaProjectId())
212+
.thenReturn(DUMMY_GCP_QUOTA_PROJECT_ID);
213+
Mockito.when(mockedGoogleCredentials.getAccessToken())
214+
.thenReturn(new AccessToken("fake", Date.from(Instant.now())));
215+
}
216+
201217
private OpenTelemetrySdk buildOpenTelemetrySdkWithExporter(SpanExporter spanExporter) {
202218
SpiHelper spiHelper =
203219
SpiHelper.create(GcpAuthAutoConfigurationCustomizerProviderTest.class.getClassLoader());
@@ -230,7 +246,7 @@ public String getName() {
230246
return builder.build().getOpenTelemetrySdk();
231247
}
232248

233-
private static boolean verifyAuthHeadersQuotaProjectPresent(Map<String, String> headers) {
249+
private static boolean authHeadersQuotaProjectIsPresent(Map<String, String> headers) {
234250
Set<Entry<String, String>> headerEntrySet = headers.entrySet();
235251
return headerEntrySet.contains(
236252
new SimpleEntry<>(QUOTA_USER_PROJECT_HEADER, DUMMY_GCP_QUOTA_PROJECT_ID))

0 commit comments

Comments
 (0)