|
25 | 25 | import com.google.api.core.ApiFutureCallback; |
26 | 26 | import com.google.api.core.ApiFutures; |
27 | 27 | import com.google.api.gax.batching.FlowController; |
| 28 | +import com.google.api.gax.core.GoogleCredentialsProvider; |
| 29 | +import com.google.api.gax.core.InstantiatingExecutorProvider; |
28 | 30 | import com.google.api.gax.core.NoCredentialsProvider; |
| 31 | +import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; |
29 | 32 | import com.google.api.gax.grpc.testing.MockGrpcService; |
30 | 33 | import com.google.api.gax.grpc.testing.MockServiceHelper; |
31 | 34 | import com.google.api.gax.rpc.AbortedException; |
@@ -1366,4 +1369,79 @@ public void testStreamWriterPermanentErrorNoMultiplexing() throws Exception { |
1366 | 1369 | assertTrue(ex.getCause() instanceof InvalidArgumentException); |
1367 | 1370 | assertFalse(writer.isUserClosed()); |
1368 | 1371 | } |
| 1372 | + |
| 1373 | + @Test(timeout = 10000) |
| 1374 | + public void testBuilderDefaultSetting() throws Exception { |
| 1375 | + StreamWriter.Builder writerBuilder = StreamWriter.newBuilder(TEST_STREAM_1); |
| 1376 | + BigQueryWriteSettings writeSettings = StreamWriter.getBigQueryWriteSettings(writerBuilder); |
| 1377 | + assertEquals( |
| 1378 | + BigQueryWriteSettings.defaultExecutorProviderBuilder().build().toString(), |
| 1379 | + writeSettings.getBackgroundExecutorProvider().toString()); |
| 1380 | + assertEquals( |
| 1381 | + BigQueryWriteSettings.defaultCredentialsProviderBuilder().build().toString(), |
| 1382 | + writeSettings.getCredentialsProvider().toString()); |
| 1383 | + assertTrue( |
| 1384 | + writeSettings.getTransportChannelProvider() instanceof InstantiatingGrpcChannelProvider); |
| 1385 | + assertEquals( |
| 1386 | + BigQueryWriteSettings.getDefaultEndpoint(), writeSettings.getEndpoint().toString()); |
| 1387 | + } |
| 1388 | + |
| 1389 | + @Test(timeout = 10000) |
| 1390 | + public void testBuilderExplicitSetting() throws Exception { |
| 1391 | + // Client has special seetings. |
| 1392 | + BigQueryWriteSettings clientSettings = |
| 1393 | + BigQueryWriteSettings.newBuilder() |
| 1394 | + .setEndpoint("xxx:345") |
| 1395 | + .setBackgroundExecutorProvider( |
| 1396 | + InstantiatingExecutorProvider.newBuilder().setExecutorThreadCount(4).build()) |
| 1397 | + .setTransportChannelProvider(serviceHelper.createChannelProvider()) |
| 1398 | + .setCredentialsProvider(NoCredentialsProvider.create()) |
| 1399 | + .build(); |
| 1400 | + BigQueryWriteClient client = BigQueryWriteClient.create(clientSettings); |
| 1401 | + StreamWriter.Builder writerWithClient = StreamWriter.newBuilder(TEST_STREAM_1, client); |
| 1402 | + BigQueryWriteSettings writerSettings = StreamWriter.getBigQueryWriteSettings(writerWithClient); |
| 1403 | + assertEquals("xxx:345", writerSettings.getEndpoint()); |
| 1404 | + assertTrue( |
| 1405 | + writerSettings.getBackgroundExecutorProvider() instanceof InstantiatingExecutorProvider); |
| 1406 | + assertEquals( |
| 1407 | + 4, |
| 1408 | + ((InstantiatingExecutorProvider) writerSettings.getBackgroundExecutorProvider()) |
| 1409 | + .getExecutorThreadCount()); |
| 1410 | + |
| 1411 | + // Explicit setting on StreamWriter is respected. |
| 1412 | + StreamWriter.Builder writerWithClientWithOverrides = |
| 1413 | + StreamWriter.newBuilder(TEST_STREAM_1, client) |
| 1414 | + .setEndpoint("yyy:345") |
| 1415 | + .setExecutorProvider( |
| 1416 | + InstantiatingExecutorProvider.newBuilder().setExecutorThreadCount(14).build()) |
| 1417 | + .setChannelProvider( |
| 1418 | + BigQueryWriteSettings.defaultGrpcTransportProviderBuilder() |
| 1419 | + .setKeepAliveTimeout(Duration.ofSeconds(500)) |
| 1420 | + .build()) |
| 1421 | + .setCredentialsProvider( |
| 1422 | + BigQueryWriteSettings.defaultCredentialsProviderBuilder() |
| 1423 | + .setScopesToApply(Arrays.asList("A", "B")) |
| 1424 | + .build()); |
| 1425 | + BigQueryWriteSettings writerSettings2 = |
| 1426 | + StreamWriter.getBigQueryWriteSettings(writerWithClientWithOverrides); |
| 1427 | + assertEquals("yyy:345", writerSettings2.getEndpoint()); |
| 1428 | + assertTrue( |
| 1429 | + writerSettings2.getBackgroundExecutorProvider() instanceof InstantiatingExecutorProvider); |
| 1430 | + assertEquals( |
| 1431 | + 14, |
| 1432 | + ((InstantiatingExecutorProvider) writerSettings2.getBackgroundExecutorProvider()) |
| 1433 | + .getExecutorThreadCount()); |
| 1434 | + assertTrue( |
| 1435 | + writerSettings2.getTransportChannelProvider() instanceof InstantiatingGrpcChannelProvider); |
| 1436 | + assertEquals( |
| 1437 | + Duration.ofSeconds(500), |
| 1438 | + ((InstantiatingGrpcChannelProvider) writerSettings2.getTransportChannelProvider()) |
| 1439 | + .getKeepAliveTimeout()); |
| 1440 | + assertTrue(writerSettings2.getCredentialsProvider() instanceof GoogleCredentialsProvider); |
| 1441 | + assertEquals( |
| 1442 | + 2, |
| 1443 | + ((GoogleCredentialsProvider) writerSettings2.getCredentialsProvider()) |
| 1444 | + .getScopesToApply() |
| 1445 | + .size()); |
| 1446 | + } |
1369 | 1447 | } |
0 commit comments