5454import com .google .api .gax .rpc .testing .FakeStubSettings ;
5555import com .google .api .gax .rpc .testing .FakeTransportChannel ;
5656import com .google .api .gax .tracing .ApiTracerFactory ;
57- import com .google .api .gax .tracing .SpanTracerFactory ;
5857import com .google .auth .ApiKeyCredentials ;
5958import com .google .auth .CredentialTypeForMetrics ;
6059import com .google .auth .Credentials ;
@@ -1297,7 +1296,7 @@ void testCreate_withTracerFactoryReturningNullWithContext() throws IOException {
12971296 builder .setCredentialsProvider (
12981297 FixedCredentialsProvider .create (Mockito .mock (Credentials .class )));
12991298
1300- ApiTracerFactory apiTracerFactory = Mockito .mock (SpanTracerFactory .class );
1299+ ApiTracerFactory apiTracerFactory = Mockito .mock (ApiTracerFactory .class );
13011300 Mockito .doReturn (true ).when (apiTracerFactory ).needsContext ();
13021301 Mockito .doReturn (apiTracerFactory ).when (apiTracerFactory ).withContext (Mockito .any ());
13031302
@@ -1308,4 +1307,68 @@ void testCreate_withTracerFactoryReturningNullWithContext() throws IOException {
13081307 assertThat (context .getTracerFactory ()).isSameInstanceAs (apiTracerFactory );
13091308 verify (apiTracerFactory , times (1 )).withContext (Mockito .any ());
13101309 }
1310+
1311+ @ Test
1312+ void testGetApiTracerFactory_noContextNeeded () throws java .io .IOException {
1313+ ApiTracerFactory mockTracerFactory = Mockito .mock (ApiTracerFactory .class );
1314+ when (mockTracerFactory .needsContext ()).thenReturn (false );
1315+ when (mockTracerFactory .withContext (
1316+ Mockito .any (com .google .api .gax .tracing .ApiTracerContext .class )))
1317+ .thenReturn (mockTracerFactory );
1318+
1319+ FakeStubSettings .Builder builder = FakeStubSettings .newBuilder ();
1320+ builder .setTracerFactory (mockTracerFactory );
1321+
1322+ EndpointContext endpointContext = Mockito .mock (EndpointContext .class );
1323+
1324+ ApiTracerFactory apiTracerFactory =
1325+ ClientContext .getApiTracerFactory (builder .build (), endpointContext );
1326+
1327+ assertThat (apiTracerFactory ).isSameInstanceAs (mockTracerFactory );
1328+ }
1329+
1330+ @ Test
1331+ void testGetApiTracerFactory_contextNeeded () throws java .io .IOException {
1332+ ApiTracerFactory mockTracerFactory = Mockito .mock (ApiTracerFactory .class );
1333+ ApiTracerFactory withContextTracerFactory = Mockito .mock (ApiTracerFactory .class );
1334+ when (mockTracerFactory .needsContext ()).thenReturn (true );
1335+ when (mockTracerFactory .withContext (
1336+ Mockito .any (com .google .api .gax .tracing .ApiTracerContext .class )))
1337+ .thenReturn (withContextTracerFactory );
1338+
1339+ FakeStubSettings .Builder builder = FakeStubSettings .newBuilder ();
1340+ builder .setTracerFactory (mockTracerFactory );
1341+
1342+ EndpointContext endpointContext = Mockito .mock (EndpointContext .class );
1343+ when (endpointContext .resolvedServerAddress ()).thenReturn ("test-address" );
1344+ when (endpointContext .resolvedServerPort ()).thenReturn (443 );
1345+
1346+ ApiTracerFactory apiTracerFactory =
1347+ ClientContext .getApiTracerFactory (builder .build (), endpointContext );
1348+
1349+ assertThat (apiTracerFactory ).isSameInstanceAs (withContextTracerFactory );
1350+ verify (mockTracerFactory , times (1 ))
1351+ .withContext (Mockito .any (com .google .api .gax .tracing .ApiTracerContext .class ));
1352+ }
1353+
1354+ // This test should only run when the maven profile `EnvVarTest` is enabled.
1355+ @ Test
1356+ void testGetApiTracerFactory_loggingEnabled () throws java .io .IOException {
1357+ ApiTracerFactory mockTracerFactory = Mockito .mock (ApiTracerFactory .class );
1358+ when (mockTracerFactory .needsContext ()).thenReturn (false );
1359+ when (mockTracerFactory .withContext (
1360+ Mockito .any (com .google .api .gax .tracing .ApiTracerContext .class )))
1361+ .thenReturn (mockTracerFactory );
1362+
1363+ FakeStubSettings .Builder builder = FakeStubSettings .newBuilder ();
1364+ builder .setTracerFactory (mockTracerFactory );
1365+
1366+ EndpointContext endpointContext = Mockito .mock (EndpointContext .class );
1367+
1368+ ApiTracerFactory apiTracerFactory =
1369+ ClientContext .getApiTracerFactory (builder .build (), endpointContext );
1370+
1371+ assertThat (apiTracerFactory )
1372+ .isInstanceOf (com .google .api .gax .tracing .CompositeTracerFactory .class );
1373+ }
13111374}
0 commit comments