|
25 | 25 | import com.google.api.gax.rpc.ServerStreamingCallSettings; |
26 | 26 | import com.google.api.gax.rpc.StatusCode.Code; |
27 | 27 | import com.google.api.gax.rpc.UnaryCallSettings; |
| 28 | +import com.google.api.gax.rpc.WatchdogProvider; |
28 | 29 | import com.google.bigtable.admin.v2.InstanceName; |
29 | 30 | import com.google.cloud.bigtable.data.v2.models.ConditionalRowMutation; |
30 | 31 | import com.google.cloud.bigtable.data.v2.models.KeyOffset; |
@@ -62,42 +63,74 @@ public void settingsAreNotLostTest() { |
62 | 63 | String appProfileId = "my-app-profile-id"; |
63 | 64 | String endpoint = "some.other.host:123"; |
64 | 65 | CredentialsProvider credentialsProvider = Mockito.mock(CredentialsProvider.class); |
| 66 | + WatchdogProvider watchdogProvider = Mockito.mock(WatchdogProvider.class); |
| 67 | + Duration watchdogInterval = Duration.ofSeconds(12); |
65 | 68 |
|
66 | 69 | EnhancedBigtableStubSettings.Builder builder = |
67 | 70 | EnhancedBigtableStubSettings.newBuilder() |
68 | 71 | .setInstanceName(instanceName) |
69 | 72 | .setAppProfileId(appProfileId) |
70 | 73 | .setEndpoint(endpoint) |
71 | | - .setCredentialsProvider(credentialsProvider); |
| 74 | + .setCredentialsProvider(credentialsProvider) |
| 75 | + .setStreamWatchdogProvider(watchdogProvider) |
| 76 | + .setStreamWatchdogCheckInterval(watchdogInterval); |
72 | 77 |
|
73 | | - verifyBuilder(builder, instanceName, appProfileId, endpoint, credentialsProvider); |
74 | | - verifySettings(builder.build(), instanceName, appProfileId, endpoint, credentialsProvider); |
75 | 78 | verifyBuilder( |
76 | | - builder.build().toBuilder(), instanceName, appProfileId, endpoint, credentialsProvider); |
| 79 | + builder, |
| 80 | + instanceName, |
| 81 | + appProfileId, |
| 82 | + endpoint, |
| 83 | + credentialsProvider, |
| 84 | + watchdogProvider, |
| 85 | + watchdogInterval); |
| 86 | + verifySettings( |
| 87 | + builder.build(), |
| 88 | + instanceName, |
| 89 | + appProfileId, |
| 90 | + endpoint, |
| 91 | + credentialsProvider, |
| 92 | + watchdogProvider, |
| 93 | + watchdogInterval); |
| 94 | + verifyBuilder( |
| 95 | + builder.build().toBuilder(), |
| 96 | + instanceName, |
| 97 | + appProfileId, |
| 98 | + endpoint, |
| 99 | + credentialsProvider, |
| 100 | + watchdogProvider, |
| 101 | + watchdogInterval); |
77 | 102 | } |
78 | 103 |
|
79 | 104 | private void verifyBuilder( |
80 | 105 | EnhancedBigtableStubSettings.Builder builder, |
81 | 106 | InstanceName instanceName, |
82 | 107 | String appProfileId, |
83 | 108 | String endpoint, |
84 | | - CredentialsProvider credentialsProvider) { |
| 109 | + CredentialsProvider credentialsProvider, |
| 110 | + WatchdogProvider watchdogProvider, |
| 111 | + Duration watchdogInterval) { |
85 | 112 | assertThat(builder.getInstanceName()).isEqualTo(instanceName); |
86 | 113 | assertThat(builder.getAppProfileId()).isEqualTo(appProfileId); |
87 | 114 | assertThat(builder.getEndpoint()).isEqualTo(endpoint); |
88 | 115 | assertThat(builder.getCredentialsProvider()).isEqualTo(credentialsProvider); |
| 116 | + assertThat(builder.getStreamWatchdogProvider()).isSameAs(watchdogProvider); |
| 117 | + assertThat(builder.getStreamWatchdogCheckInterval()).isEqualTo(watchdogInterval); |
89 | 118 | } |
90 | 119 |
|
91 | 120 | private void verifySettings( |
92 | 121 | EnhancedBigtableStubSettings settings, |
93 | 122 | InstanceName instanceName, |
94 | 123 | String appProfileId, |
95 | 124 | String endpoint, |
96 | | - CredentialsProvider credentialsProvider) { |
| 125 | + CredentialsProvider credentialsProvider, |
| 126 | + WatchdogProvider watchdogProvider, |
| 127 | + Duration watchdogInterval) { |
97 | 128 | assertThat(settings.getInstanceName()).isEqualTo(instanceName); |
98 | 129 | assertThat(settings.getAppProfileId()).isEqualTo(appProfileId); |
99 | 130 | assertThat(settings.getEndpoint()).isEqualTo(endpoint); |
100 | 131 | assertThat(settings.getCredentialsProvider()).isEqualTo(credentialsProvider); |
| 132 | + assertThat(settings.getStreamWatchdogProvider()).isSameAs(watchdogProvider); |
| 133 | + assertThat(settings.getStreamWatchdogCheckInterval()).isEqualTo(watchdogInterval); |
101 | 134 | } |
102 | 135 |
|
103 | 136 | @Test |
@@ -132,29 +165,22 @@ public void readRowsIsNotLostTest() { |
132 | 165 |
|
133 | 166 | builder |
134 | 167 | .readRowsSettings() |
135 | | - .setTimeoutCheckInterval(Duration.ofSeconds(10)) |
136 | 168 | .setIdleTimeout(Duration.ofMinutes(5)) |
137 | 169 | .setRetryableCodes(Code.ABORTED, Code.DEADLINE_EXCEEDED) |
138 | 170 | .setRetrySettings(retrySettings) |
139 | 171 | .build(); |
140 | 172 |
|
141 | | - assertThat(builder.readRowsSettings().getTimeoutCheckInterval()) |
142 | | - .isEqualTo(Duration.ofSeconds(10)); |
143 | 173 | assertThat(builder.readRowsSettings().getIdleTimeout()).isEqualTo(Duration.ofMinutes(5)); |
144 | 174 | assertThat(builder.readRowsSettings().getRetryableCodes()) |
145 | 175 | .containsAllOf(Code.ABORTED, Code.DEADLINE_EXCEEDED); |
146 | 176 | assertThat(builder.readRowsSettings().getRetrySettings()).isEqualTo(retrySettings); |
147 | 177 |
|
148 | | - assertThat(builder.build().readRowsSettings().getTimeoutCheckInterval()) |
149 | | - .isEqualTo(Duration.ofSeconds(10)); |
150 | 178 | assertThat(builder.build().readRowsSettings().getIdleTimeout()) |
151 | 179 | .isEqualTo(Duration.ofMinutes(5)); |
152 | 180 | assertThat(builder.build().readRowsSettings().getRetryableCodes()) |
153 | 181 | .containsAllOf(Code.ABORTED, Code.DEADLINE_EXCEEDED); |
154 | 182 | assertThat(builder.build().readRowsSettings().getRetrySettings()).isEqualTo(retrySettings); |
155 | 183 |
|
156 | | - assertThat(builder.build().toBuilder().readRowsSettings().getTimeoutCheckInterval()) |
157 | | - .isEqualTo(Duration.ofSeconds(10)); |
158 | 184 | assertThat(builder.build().toBuilder().readRowsSettings().getIdleTimeout()) |
159 | 185 | .isEqualTo(Duration.ofMinutes(5)); |
160 | 186 | assertThat(builder.build().toBuilder().readRowsSettings().getRetryableCodes()) |
@@ -367,9 +393,8 @@ public void checkAndMutateRowSettingsAreSane() { |
367 | 393 | } |
368 | 394 |
|
369 | 395 | private void verifyRetrySettingAreSane(Set<Code> retryCodes, RetrySettings retrySettings) { |
370 | | - assertThat(retryCodes).containsAllOf(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE, Code.ABORTED); |
| 396 | + assertThat(retryCodes).containsAllOf(Code.DEADLINE_EXCEEDED, Code.UNAVAILABLE); |
371 | 397 |
|
372 | | - assertThat(retrySettings.getMaxAttempts()).isGreaterThan(1); |
373 | 398 | assertThat(retrySettings.getTotalTimeout()).isGreaterThan(Duration.ZERO); |
374 | 399 |
|
375 | 400 | assertThat(retrySettings.getInitialRetryDelay()).isGreaterThan(Duration.ZERO); |
|
0 commit comments