@Test public void testExistsTrue() { // Setup com.google.bigtable.admin.v2.Instance expectedResponse = com.google.bigtable.admin.v2.Instance.newBuilder() .setName(NameUtil.formatInstanceName(PROJECT_ID, INSTANCE_ID)) .build(); Mockito.when(mockGetInstanceCallable.futureCall(Matchers.any(GetInstanceRequest.class))) .thenReturn(ApiFutures.immediateFuture(expectedResponse)); // Execute boolean found = adminClient.exists(INSTANCE_ID); // Verify assertThat(found).isTrue(); }
/** * Creates the request protobuf. This method is considered an internal implementation detail and * not meant to be used by applications. */ @InternalApi public PartialUpdateInstanceRequest toProto(String projectId) { // Empty field mask implies full resource replacement, which would clear all fields in an empty // update request. Preconditions.checkState( !builder.getUpdateMask().getPathsList().isEmpty(), "Update request is empty"); builder.getInstanceBuilder().setName(NameUtil.formatInstanceName(projectId, instanceId)); return builder.build(); } }
@Test public void testGetInstance() { // Setup com.google.bigtable.admin.v2.GetInstanceRequest expectedRequest = com.google.bigtable.admin.v2.GetInstanceRequest.newBuilder().setName(INSTANCE_NAME).build(); com.google.bigtable.admin.v2.Instance expectedResponse = com.google.bigtable.admin.v2.Instance.newBuilder().setName(INSTANCE_NAME).build(); Mockito.when(mockGetInstanceCallable.futureCall(expectedRequest)) .thenReturn(ApiFutures.immediateFuture(expectedResponse)); // Execute Instance actualResult = adminClient.getInstance(INSTANCE_ID); // Verify assertThat(actualResult).isEqualTo(Instance.fromProto(expectedResponse)); }
/** * Creates the request protobuf. This method is considered an internal implementation detail and * not meant to be used by applications. */ @InternalApi public PartialUpdateInstanceRequest toProto(String projectId) { // Empty field mask implies full resource replacement, which would clear all fields in an empty // update request. Preconditions.checkState( !builder.getUpdateMask().getPathsList().isEmpty(), "Update request is empty"); builder.getInstanceBuilder().setName(NameUtil.formatInstanceName(projectId, instanceId)); return builder.build(); } }
.addInstances( com.google.bigtable.admin.v2.Instance.newBuilder() .setName(INSTANCE_NAME + "1") .build()) .addFailedLocations(NameUtil.formatLocationName(PROJECT_ID, "us-east1-d"))
com.google.bigtable.admin.v2.Instance.newBuilder().setName(INSTANCE_NAME).build();
String displayName = "displayName1615086568"; Instance expectedResponse = Instance.newBuilder().setName(name.toString()).setDisplayName(displayName).build(); Operation resultOperation = Operation.newBuilder()
@Test @SuppressWarnings("all") public void partialUpdateInstanceTest() throws Exception { InstanceName name = InstanceName.of("[PROJECT]", "[INSTANCE]"); String displayName = "displayName1615086568"; Instance expectedResponse = Instance.newBuilder().setName(name.toString()).setDisplayName(displayName).build(); Operation resultOperation = Operation.newBuilder() .setName("partialUpdateInstanceTest") .setDone(true) .setResponse(Any.pack(expectedResponse)) .build(); mockBigtableInstanceAdmin.addResponse(resultOperation); Instance instance = Instance.newBuilder().build(); FieldMask updateMask = FieldMask.newBuilder().build(); Instance actualResponse = client.partialUpdateInstanceAsync(instance, updateMask).get(); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockBigtableInstanceAdmin.getRequests(); Assert.assertEquals(1, actualRequests.size()); PartialUpdateInstanceRequest actualRequest = (PartialUpdateInstanceRequest) actualRequests.get(0); Assert.assertEquals(instance, actualRequest.getInstance()); Assert.assertEquals(updateMask, actualRequest.getUpdateMask()); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test public void testListInstances() { // Setup com.google.bigtable.admin.v2.ListInstancesRequest expectedRequest = com.google.bigtable.admin.v2.ListInstancesRequest.newBuilder() .setParent(PROJECT_NAME) .build(); com.google.bigtable.admin.v2.ListInstancesResponse expectedResponse = com.google.bigtable.admin.v2.ListInstancesResponse.newBuilder() .addInstances( com.google.bigtable.admin.v2.Instance.newBuilder() .setName(INSTANCE_NAME + "1") .build()) .addInstances( com.google.bigtable.admin.v2.Instance.newBuilder() .setName(INSTANCE_NAME + "2") .build()) .build(); Mockito.when(mockListInstancesCallable.futureCall(expectedRequest)) .thenReturn(ApiFutures.immediateFuture(expectedResponse)); // Execute List<Instance> actualResult = adminClient.listInstances(); // Verify assertThat(actualResult) .containsExactly( Instance.fromProto(expectedResponse.getInstances(0)), Instance.fromProto(expectedResponse.getInstances(1))); }
@Test public void testUpdateInstance() { // Setup com.google.bigtable.admin.v2.PartialUpdateInstanceRequest expectedRequest = com.google.bigtable.admin.v2.PartialUpdateInstanceRequest.newBuilder() .setUpdateMask(FieldMask.newBuilder().addPaths("display_name")) .setInstance( com.google.bigtable.admin.v2.Instance.newBuilder() .setName(INSTANCE_NAME) .setDisplayName("new display name")) .build(); com.google.bigtable.admin.v2.Instance expectedResponse = com.google.bigtable.admin.v2.Instance.newBuilder().setName(INSTANCE_NAME).build(); mockOperationResult(mockUpdateInstanceCallable, expectedRequest, expectedResponse); // Execute Instance actualResult = adminClient.updateInstance( UpdateInstanceRequest.of(INSTANCE_ID).setDisplayName("new display name")); // Verify assertThat(actualResult).isEqualTo(Instance.fromProto(expectedResponse)); }
@Test public void testFromProto() { com.google.bigtable.admin.v2.Instance proto = com.google.bigtable.admin.v2.Instance.newBuilder() .setName("projects/my-project/instances/my-instance") .setDisplayName("my display name") .setType(com.google.bigtable.admin.v2.Instance.Type.PRODUCTION) .setState(com.google.bigtable.admin.v2.Instance.State.READY) .putLabels("label1", "value1") .putLabels("label2", "value2") .build(); Instance result = Instance.fromProto(proto); assertThat(result.getId()).isEqualTo("my-instance"); assertThat(result.getDisplayName()).isEqualTo("my display name"); assertThat(result.getType()).isEqualTo(Instance.Type.PRODUCTION); assertThat(result.getState()).isEqualTo(Instance.State.READY); assertThat(result.getLabels()) .containsExactly( "label1", "value1", "label2", "value2"); }
@Test @SuppressWarnings("all") public void getInstanceTest() { InstanceName name2 = InstanceName.of("[PROJECT]", "[INSTANCE]"); String displayName = "displayName1615086568"; Instance expectedResponse = Instance.newBuilder().setName(name2.toString()).setDisplayName(displayName).build(); mockBigtableInstanceAdmin.addResponse(expectedResponse); InstanceName name = InstanceName.of("[PROJECT]", "[INSTANCE]"); Instance actualResponse = client.getInstance(name); Assert.assertEquals(expectedResponse, actualResponse); List<GeneratedMessageV3> actualRequests = mockBigtableInstanceAdmin.getRequests(); Assert.assertEquals(1, actualRequests.size()); GetInstanceRequest actualRequest = (GetInstanceRequest) actualRequests.get(0); Assert.assertEquals(name, InstanceName.parse(actualRequest.getName())); Assert.assertTrue( channelProvider.isHeaderSent( ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), GaxGrpcProperties.getDefaultApiClientHeaderPattern())); }
@Test public void testLabels() { UpdateInstanceRequest input = UpdateInstanceRequest.of("my-instance") .setAllLabels( ImmutableMap.of( "label1", "value1", "label2", "value2")); PartialUpdateInstanceRequest actual = input.toProto("my-project"); PartialUpdateInstanceRequest expected = PartialUpdateInstanceRequest.newBuilder() .setUpdateMask(FieldMask.newBuilder().addPaths("labels")) .setInstance( Instance.newBuilder() .setName("projects/my-project/instances/my-instance") .putLabels("label1", "value1") .putLabels("label2", "value2")) .build(); assertThat(actual).isEqualTo(expected); }
@Test public void testDisplayName() { UpdateInstanceRequest input = UpdateInstanceRequest.of("my-instance").setDisplayName("my display name"); PartialUpdateInstanceRequest actual = input.toProto("my-project"); PartialUpdateInstanceRequest expected = PartialUpdateInstanceRequest.newBuilder() .setUpdateMask(FieldMask.newBuilder().addPaths("display_name")) .setInstance( Instance.newBuilder() .setName("projects/my-project/instances/my-instance") .setDisplayName("my display name")) .build(); assertThat(actual).isEqualTo(expected); }
@Test public void testType() { UpdateInstanceRequest input = UpdateInstanceRequest.of("my-instance").setProductionType(); PartialUpdateInstanceRequest actual = input.toProto("my-project"); PartialUpdateInstanceRequest expected = PartialUpdateInstanceRequest.newBuilder() .setUpdateMask(FieldMask.newBuilder().addPaths("type")) .setInstance( Instance.newBuilder() .setName("projects/my-project/instances/my-instance") .setType(Type.PRODUCTION)) .build(); assertThat(actual).isEqualTo(expected); } }