|
18 | 18 | import static com.google.common.truth.Truth.assertThat;
|
19 | 19 | import static org.junit.Assert.assertEquals;
|
20 | 20 | import static org.mockito.Matchers.any;
|
21 |
| -import java.util.List; |
22 |
| -import org.junit.Before; |
23 |
| -import org.junit.Test; |
24 |
| -import org.junit.runner.RunWith; |
25 |
| -import org.mockito.ArgumentCaptor; |
26 |
| -import org.mockito.Mock; |
27 |
| -import org.mockito.Mockito; |
28 |
| -import org.mockito.runners.MockitoJUnitRunner; |
| 21 | + |
29 | 22 | import com.google.api.core.ApiFuture;
|
30 | 23 | import com.google.api.core.ApiFutures;
|
31 | 24 | import com.google.api.gax.rpc.UnaryCallable;
|
|
41 | 34 | import com.google.bigtable.admin.v2.ListTablesResponse;
|
42 | 35 | import com.google.bigtable.admin.v2.Table;
|
43 | 36 | import com.google.bigtable.admin.v2.TableName;
|
| 37 | +import com.google.cloud.bigtable.admin.v2.models.ConsistencyToken; |
44 | 38 | import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest;
|
45 | 39 | import com.google.cloud.bigtable.admin.v2.models.ModifyColumnFamiliesRequest;
|
46 |
| -import com.google.cloud.bigtable.admin.v2.models.ConsistencyToken; |
47 | 40 | import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStub;
|
48 | 41 | import com.google.protobuf.ByteString;
|
49 | 42 | import com.google.protobuf.Empty;
|
| 43 | +import java.util.List; |
| 44 | +import org.junit.Before; |
| 45 | +import org.junit.Test; |
| 46 | +import org.junit.runner.RunWith; |
| 47 | +import org.mockito.Mock; |
| 48 | +import org.mockito.Mockito; |
| 49 | +import org.mockito.runners.MockitoJUnitRunner; |
50 | 50 |
|
51 | 51 | @RunWith(MockitoJUnitRunner.class)
|
52 | 52 | public class BigtableTableAdminClientTest {
|
@@ -239,51 +239,64 @@ public void dropRowRangeAsync() {
|
239 | 239 | }
|
240 | 240 |
|
241 | 241 | @Test
|
242 |
| - public void generateAndCheckConsistency() { |
243 |
| - GenerateConsistencyTokenResponse genResp = |
244 |
| - GenerateConsistencyTokenResponse.newBuilder().build(); |
245 |
| - Mockito.when( |
246 |
| - mockGenerateConsistencyTokenCallable.call( |
247 |
| - adminClient.composeGenerateConsistencyTokenRequest("tableId"))) |
248 |
| - .thenReturn(genResp); |
249 |
| - |
250 |
| - ConsistencyToken consistencyToken = adminClient.generateConsistencyToken("tableId"); |
251 |
| - Mockito.verify(mockGenerateConsistencyTokenCallable) |
252 |
| - .call(adminClient.composeGenerateConsistencyTokenRequest("tableId")); |
253 |
| - |
254 |
| - ArgumentCaptor<CheckConsistencyRequest> requestCaptor = |
255 |
| - ArgumentCaptor.forClass(CheckConsistencyRequest.class); |
256 |
| - CheckConsistencyResponse consistencyResp = CheckConsistencyResponse.newBuilder().build(); |
257 |
| - Mockito.when(mockCheckConsistencyCallable.call(any(CheckConsistencyRequest.class))) |
258 |
| - .thenReturn(consistencyResp); |
259 |
| - |
260 |
| - adminClient.isConsistent(consistencyToken); |
261 |
| - Mockito.verify(mockCheckConsistencyCallable).call(requestCaptor.capture()); |
| 242 | + public void testGenerateConsistencyToken() { |
| 243 | + TableName tableName = TableName.of("[PROJECT]", "[INSTANCE]", "[TABLE]"); |
| 244 | + |
| 245 | + GenerateConsistencyTokenRequest expectedRequest = GenerateConsistencyTokenRequest.newBuilder() |
| 246 | + .setName(tableName.toString()) |
| 247 | + .build(); |
| 248 | + |
| 249 | + GenerateConsistencyTokenResponse fakeResponse = GenerateConsistencyTokenResponse.newBuilder() |
| 250 | + .setConsistencyToken("fake-token") |
| 251 | + .build(); |
| 252 | + |
| 253 | + Mockito.when(mockGenerateConsistencyTokenCallable.futureCall(expectedRequest)) |
| 254 | + .thenReturn(ApiFutures.immediateFuture(fakeResponse)); |
| 255 | + |
| 256 | + ConsistencyToken actualToken = adminClient.generateConsistencyToken(tableName.getTable()); |
| 257 | + |
| 258 | + assertThat(actualToken).isEqualTo(ConsistencyToken.of(tableName, "fake-token")); |
262 | 259 | }
|
263 | 260 |
|
264 | 261 | @Test
|
265 |
| - public void generateAndCheckConsistencyAsync() throws Exception { |
266 |
| - ApiFuture<GenerateConsistencyTokenResponse> genResp = |
267 |
| - ApiFutures.immediateFuture(GenerateConsistencyTokenResponse.newBuilder().build()); |
268 |
| - Mockito.when( |
269 |
| - mockGenerateConsistencyTokenCallable.futureCall( |
270 |
| - adminClient.composeGenerateConsistencyTokenRequest("tableId"))) |
271 |
| - .thenReturn(genResp); |
272 |
| - |
273 |
| - ApiFuture<ConsistencyToken> consistencyTokenFuture = |
274 |
| - adminClient.generateConsistencyTokenAsync("tableId"); |
275 |
| - Mockito.verify(mockGenerateConsistencyTokenCallable) |
276 |
| - .futureCall(adminClient.composeGenerateConsistencyTokenRequest("tableId")); |
277 |
| - |
278 |
| - ArgumentCaptor<CheckConsistencyRequest> requestCaptor = |
279 |
| - ArgumentCaptor.forClass(CheckConsistencyRequest.class); |
280 |
| - ApiFuture<CheckConsistencyResponse> consistencyResp = |
281 |
| - ApiFutures.immediateFuture(CheckConsistencyResponse.newBuilder().build()); |
282 |
| - Mockito.when(mockCheckConsistencyCallable.futureCall(any(CheckConsistencyRequest.class))) |
283 |
| - .thenReturn(consistencyResp); |
284 |
| - |
285 |
| - adminClient.isConsistentAsync(consistencyTokenFuture.get()); |
286 |
| - Mockito.verify(mockCheckConsistencyCallable).futureCall(requestCaptor.capture()); |
| 262 | + public void testGenerateConsistencyTokenAsync() throws Exception { |
| 263 | + TableName tableName = TableName.of("[PROJECT]", "[INSTANCE]", "[TABLE]"); |
| 264 | + |
| 265 | + GenerateConsistencyTokenRequest expectedRequest = GenerateConsistencyTokenRequest.newBuilder() |
| 266 | + .setName(tableName.toString()) |
| 267 | + .build(); |
| 268 | + |
| 269 | + GenerateConsistencyTokenResponse fakeResponse = GenerateConsistencyTokenResponse.newBuilder() |
| 270 | + .setConsistencyToken("fake-token") |
| 271 | + .build(); |
| 272 | + |
| 273 | + Mockito.when(mockGenerateConsistencyTokenCallable.futureCall(expectedRequest)) |
| 274 | + .thenReturn(ApiFutures.immediateFuture(fakeResponse)); |
| 275 | + |
| 276 | + ApiFuture<ConsistencyToken> actualTokenFuture = adminClient.generateConsistencyTokenAsync("[TABLE]"); |
| 277 | + |
| 278 | + assertThat(actualTokenFuture.get()).isEqualTo(ConsistencyToken.of(tableName, "fake-token")); |
| 279 | + } |
| 280 | + |
| 281 | + @Test |
| 282 | + public void testCheckConsistencyToken() { |
| 283 | + TableName tableName = TableName.of("[PROJECT]", "[INSTANCE]", "[TABLE]"); |
| 284 | + |
| 285 | + CheckConsistencyRequest expectedRequest = CheckConsistencyRequest.newBuilder() |
| 286 | + .setName(tableName.toString()) |
| 287 | + .setConsistencyToken("fake-token") |
| 288 | + .build(); |
| 289 | + |
| 290 | + CheckConsistencyResponse fakeResponse = CheckConsistencyResponse.newBuilder() |
| 291 | + .setConsistent(true) |
| 292 | + .build(); |
| 293 | + |
| 294 | + Mockito.when(mockCheckConsistencyCallable.futureCall(expectedRequest)) |
| 295 | + .thenReturn(ApiFutures.immediateFuture(fakeResponse)); |
| 296 | + |
| 297 | + boolean result = adminClient.isConsistent(ConsistencyToken.of(tableName, "fake-token")); |
| 298 | + |
| 299 | + assertThat(result).isTrue(); |
287 | 300 | }
|
288 | 301 |
|
289 | 302 | @Test
|
|
0 commit comments