Skip to content

Commit f60d989

Browse files
fix tests
1 parent 845e134 commit f60d989

File tree

3 files changed

+76
-76
lines changed

3 files changed

+76
-76
lines changed

google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClient.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ public ApiFuture<ConsistencyToken> generateConsistencyTokenAsync(final String ta
480480
new ApiFunction<GenerateConsistencyTokenResponse, ConsistencyToken>() {
481481
@Override
482482
public ConsistencyToken apply(GenerateConsistencyTokenResponse proto) {
483-
TableName tableName = TableName.of(instanceName.getProject(), instanceName.getProject(), tableId);
483+
TableName tableName = TableName.of(instanceName.getProject(), instanceName.getInstance(), tableId);
484484
return ConsistencyToken.of(tableName, proto.getConsistencyToken());
485485
}
486486
});

google-cloud-clients/google-cloud-bigtable-admin/src/main/java/com/google/cloud/bigtable/admin/v2/models/ConsistencyToken.java

+11-24
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@
1616
package com.google.cloud.bigtable.admin.v2.models;
1717

1818
import com.google.api.core.InternalApi;
19+
import com.google.api.core.InternalExtensionOnly;
20+
import com.google.auto.value.AutoValue;
1921
import com.google.bigtable.admin.v2.CheckConsistencyRequest;
2022
import com.google.bigtable.admin.v2.GenerateConsistencyTokenResponse;
2123
import com.google.bigtable.admin.v2.InstanceName;
2224
import com.google.bigtable.admin.v2.TableName;
23-
import com.google.common.annotations.VisibleForTesting;
24-
import com.google.common.base.MoreObjects;
2525
import com.google.common.base.Preconditions;
2626

2727
/**
@@ -30,38 +30,25 @@
3030
* <p>Cannot be created. They are obtained by invoking {@link
3131
* com.google.cloud.bigtable.admin.v2.BigtableTableAdminClient#generateConsistencyToken(String)}
3232
*/
33-
public final class ConsistencyToken {
34-
private final TableName tableName;
35-
private final String token;
36-
33+
@InternalExtensionOnly
34+
@AutoValue
35+
public abstract class ConsistencyToken {
3736
public static ConsistencyToken of(TableName tableName, String token) {
38-
return new ConsistencyToken(tableName, token);
37+
return new AutoValue_ConsistencyToken(tableName, token);
3938
}
4039

41-
public ConsistencyToken(TableName tableName, String token) {
42-
this.tableName = tableName;
43-
this.token = token;
44-
}
40+
abstract TableName getTableName();
41+
abstract String getToken();
4542

4643
@InternalApi
4744
public CheckConsistencyRequest toProto(InstanceName instanceName) {
4845
Preconditions.checkArgument(
49-
instanceName.equals(InstanceName.of(tableName.getProject(), tableName.getInstance())),
46+
instanceName.equals(InstanceName.of(getTableName().getProject(), getTableName().getInstance())),
5047
"Consistency tokens are only valid within a single instance.");
5148

5249
return CheckConsistencyRequest.newBuilder()
53-
.setName(tableName.toString())
54-
.setConsistencyToken(token)
50+
.setName(getTableName().toString())
51+
.setConsistencyToken(getToken())
5552
.build();
5653
}
57-
58-
@VisibleForTesting
59-
String getToken() {
60-
return token;
61-
}
62-
63-
@Override
64-
public String toString() {
65-
return MoreObjects.toStringHelper(this).add("token", token).toString();
66-
}
6754
}

google-cloud-clients/google-cloud-bigtable-admin/src/test/java/com/google/cloud/bigtable/admin/v2/BigtableTableAdminClientTest.java

+64-51
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,7 @@
1818
import static com.google.common.truth.Truth.assertThat;
1919
import static org.junit.Assert.assertEquals;
2020
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+
2922
import com.google.api.core.ApiFuture;
3023
import com.google.api.core.ApiFutures;
3124
import com.google.api.gax.rpc.UnaryCallable;
@@ -41,12 +34,19 @@
4134
import com.google.bigtable.admin.v2.ListTablesResponse;
4235
import com.google.bigtable.admin.v2.Table;
4336
import com.google.bigtable.admin.v2.TableName;
37+
import com.google.cloud.bigtable.admin.v2.models.ConsistencyToken;
4438
import com.google.cloud.bigtable.admin.v2.models.CreateTableRequest;
4539
import com.google.cloud.bigtable.admin.v2.models.ModifyColumnFamiliesRequest;
46-
import com.google.cloud.bigtable.admin.v2.models.ConsistencyToken;
4740
import com.google.cloud.bigtable.admin.v2.stub.BigtableTableAdminStub;
4841
import com.google.protobuf.ByteString;
4942
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;
5050

5151
@RunWith(MockitoJUnitRunner.class)
5252
public class BigtableTableAdminClientTest {
@@ -239,51 +239,64 @@ public void dropRowRangeAsync() {
239239
}
240240

241241
@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"));
262259
}
263260

264261
@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();
287300
}
288301

289302
@Test

0 commit comments

Comments
 (0)