@Test public void checkAndMutateRowSettingsAreSane() { UnaryCallSettings.Builder<ConditionalRowMutation, Boolean> builder = EnhancedBigtableStubSettings.newBuilder().checkAndMutateRowSettings(); // CheckAndMutateRow is not retryable in the case of toggle mutations. So it's disabled by // default. assertThat(builder.getRetrySettings().getMaxAttempts()).isAtMost(1); assertThat(builder.getRetryableCodes()).isEmpty(); }
@Test public void checkAndMutateRowSettingsAreNotLostTest() { String dummyProjectId = "my-project"; String dummyInstanceId = "my-instance"; EnhancedBigtableStubSettings.Builder builder = EnhancedBigtableStubSettings.newBuilder() .setProjectId(dummyProjectId) .setInstanceId(dummyInstanceId); RetrySettings retrySettings = RetrySettings.newBuilder().build(); builder .checkAndMutateRowSettings() .setRetryableCodes(Code.ABORTED, Code.DEADLINE_EXCEEDED) .setRetrySettings(retrySettings) .build(); assertThat(builder.checkAndMutateRowSettings().getRetryableCodes()) .containsAllOf(Code.ABORTED, Code.DEADLINE_EXCEEDED); assertThat(builder.checkAndMutateRowSettings().getRetrySettings()).isSameAs(retrySettings); assertThat(builder.build().checkAndMutateRowSettings().getRetryableCodes()) .containsAllOf(Code.ABORTED, Code.DEADLINE_EXCEEDED); assertThat(builder.build().checkAndMutateRowSettings().getRetrySettings()) .isSameAs(retrySettings); assertThat(builder.build().toBuilder().checkAndMutateRowSettings().getRetryableCodes()) .containsAllOf(Code.ABORTED, Code.DEADLINE_EXCEEDED); assertThat(builder.build().toBuilder().checkAndMutateRowSettings().getRetrySettings()) .isSameAs(retrySettings); }
assertThat(builder.mutateRowSettings().getRetrySettings()).isEqualTo(retrySettings); assertThat(builder.build().toBuilder().mutateRowSettings().getRetrySettings()) .isEqualTo(retrySettings);
private static void assertIsReflectionEqual( UnaryCallSettings.Builder<?, ?> builderA, UnaryCallSettings.Builder<?, ?> builderB) { assertIsReflectionEqual(builderA, builderB, new String[] {"retrySettings"}); assertIsReflectionEqual(builderA.getRetrySettings(), builderB.getRetrySettings()); }
@Test public void testSetSimpleTimeoutNoRetries() { UnaryCallSettings.Builder builder = new UnaryCallSettings.Builder(); builder.setSimpleTimeoutNoRetries(Duration.ofSeconds(13)); Truth.assertThat(builder.getRetryableCodes().size()).isEqualTo(0); Truth.assertThat(builder.getRetrySettings().getMaxAttempts()).isEqualTo(1); Truth.assertThat(builder.getRetrySettings().getTotalTimeout()) .isEqualTo(Duration.ofSeconds(13)); } }
/** * Copies settings from unary RPC to another. This is necessary when modifying request and * response types while trying to retain retry settings. */ private static void copyRetrySettings( UnaryCallSettings.Builder<?, ?> source, UnaryCallSettings.Builder<?, ?> dest) { dest.setRetryableCodes(source.getRetryableCodes()); dest.setRetrySettings(source.getRetrySettings()); } // </editor-fold>
assertThat(builder.sampleRowKeysSettings().getRetrySettings()).isEqualTo(retrySettings); assertThat(builder.build().toBuilder().sampleRowKeysSettings().getRetrySettings()) .isEqualTo(retrySettings);
assertThat(builder.readRowSettings().getRetrySettings()).isEqualTo(retrySettings); assertThat(builder.build().toBuilder().readRowSettings().getRetrySettings()) .isEqualTo(retrySettings);
@Test public void testFinalizeStreamSettings() { UnaryCallSettings.Builder<FinalizeStreamRequest, Empty> builder = EnhancedBigQueryStorageStubSettings.newBuilder().finalizeStreamSettings(); verifyRetrySettings(builder.getRetryableCodes(), builder.getRetrySettings()); }
@Test public void testBatchCreateReadSessionStreamsSettings() { UnaryCallSettings.Builder< BatchCreateReadSessionStreamsRequest, BatchCreateReadSessionStreamsResponse> builder = EnhancedBigQueryStorageStubSettings.newBuilder() .batchCreateReadSessionStreamsSettings(); verifyRetrySettings(builder.getRetryableCodes(), builder.getRetrySettings()); }
/** * Copies settings from unary RPC to another. This is necessary when modifying request and * response types while trying to retain retry settings. */ private static void copyRetrySettings( UnaryCallSettings.Builder<?, ?> source, UnaryCallSettings.Builder<?, ?> dest) { dest.setRetryableCodes(source.getRetryableCodes()); dest.setRetrySettings(source.getRetrySettings()); } // </editor-fold>
@Test public void mutateRowHasSaneDefaultsTest() { UnaryCallSettings.Builder<RowMutation, Void> builder = EnhancedBigtableStubSettings.newBuilder().mutateRowSettings(); verifyRetrySettingAreSane(builder.getRetryableCodes(), builder.getRetrySettings()); }
@Test public void readRowHasSaneDefaultsTest() { UnaryCallSettings.Builder<Query, Row> builder = EnhancedBigtableStubSettings.newBuilder().readRowSettings(); verifyRetrySettingAreSane(builder.getRetryableCodes(), builder.getRetrySettings()); }
@Test public void testCreateReadSessionSettings() { UnaryCallSettings.Builder<CreateReadSessionRequest, ReadSession> builder = EnhancedBigQueryStorageStubSettings.newBuilder().createReadSessionSettings(); verifyRetrySettings(builder.getRetryableCodes(), builder.getRetrySettings()); }
@Test public void sampleRowKeysHasSaneDefaultsTest() { UnaryCallSettings.Builder<String, List<KeyOffset>> builder = EnhancedBigtableStubSettings.newBuilder().sampleRowKeysSettings(); verifyRetrySettingAreSane(builder.getRetryableCodes(), builder.getRetrySettings()); }
@Test public void testSplitReadStreamSettings() { UnaryCallSettings.Builder<SplitReadStreamRequest, SplitReadStreamResponse> builder = EnhancedBigQueryStorageStubSettings.newBuilder().splitReadStreamSettings(); verifyRetrySettings(builder.getRetryableCodes(), builder.getRetrySettings()); }