From b0beddcebe7cf0a67b998c245f79104d873f29b7 Mon Sep 17 00:00:00 2001 From: Mira Leung Date: Wed, 10 Mar 2021 20:26:34 -0800 Subject: [PATCH 1/2] fix(mixins): handle unit tests for mixin pagination methods --- .../ServiceClientTestClassComposer.java | 80 +++++-- test/integration/BUILD.bazel | 7 +- .../apis/kms/v1/cloudkms_test_mixins_v1.yaml | 1 + .../kms/GrpcKeyManagementServiceStub.java | 79 +++++++ .../kms/KeyManagementServiceClient.java | 215 ++++++++++++++++++ .../kms/KeyManagementServiceClientTest.java | 112 ++++++++- .../kms/KeyManagementServiceSettings.java | 28 +++ .../goldens/kms/KeyManagementServiceStub.java | 18 ++ .../kms/KeyManagementServiceStubSettings.java | 116 +++++++++- .../goldens/kms/MockLocations.java | 59 +++++ .../goldens/kms/MockLocationsImpl.java | 101 ++++++++ .../goldens/kms/gapic_metadata.json | 6 + 12 files changed, 803 insertions(+), 19 deletions(-) create mode 100644 test/integration/goldens/kms/MockLocations.java create mode 100644 test/integration/goldens/kms/MockLocationsImpl.java diff --git a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java index 7ba0ba35f9..81f8e69541 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/ServiceClientTestClassComposer.java @@ -140,11 +140,7 @@ public GapicClass generate(GapicContext context, Service service) { Map messageTypes = context.messages(); String pakkage = service.pakkage(); TypeStore typeStore = new TypeStore(); - addDynamicTypes(service, typeStore); - for (Service mixinService : context.mixinServices()) { - addDynamicTypes(mixinService, typeStore); - } - + addDynamicTypes(context, service, typeStore); String className = ClassNames.getServiceClientTestClassName(service); GapicClass.Kind kind = Kind.MAIN; @@ -466,6 +462,7 @@ private static List createTestMethods( javaMethods.add( createRpcTestMethod( method, + service, matchingService, Collections.emptyList(), 0, @@ -487,6 +484,7 @@ private static List createTestMethods( javaMethods.add( createRpcTestMethod( method, + service, matchingService, method.methodSignatures().get(i), i, @@ -509,9 +507,27 @@ private static List createTestMethods( return javaMethods; } + /** + * Creates a test method for a given RPC, e.g. createAssetTest. + * + * @param method the RPC for which this test method is created. + * @param apiService the host service under test. + * @param rpcService the service that {@code method} belongs to. This is not equal to {@code + * apiService} only when {@code method} is a mixin, in which case {@code rpcService} is the + * mixed-in service. If {@code apiService} and {@code rpcService} are different, they will be + * used only for pagination. Otherwise, {@code rpcService} subsumes {@code apiService}. + * @param methodSignature the method signature of the RPC under test. + * @param variantIndex the nth variant of the RPC under test. This applies when we have + * polymorphism due to the presence of several method signature annotations in the proto. + * @param isRequestArg whether the RPC variant under test take only the request proto message. + * @param classMemberVarExprs the class members in the generated test class. + * @param resourceNames the resource names available for use. + * @param messageTypes the proto message types available for use. + */ private static MethodDefinition createRpcTestMethod( Method method, - Service service, + Service apiService, + Service rpcService, List methodSignature, int variantIndex, boolean isRequestArg, @@ -520,7 +536,7 @@ private static MethodDefinition createRpcTestMethod( Map messageTypes) { if (!method.stream().equals(Method.Stream.NONE)) { return createStreamingRpcTestMethod( - service, method, classMemberVarExprs, resourceNames, messageTypes); + rpcService, method, classMemberVarExprs, resourceNames, messageTypes); } // Construct the expected response. TypeNode methodOutputType = method.hasLro() ? method.lro().responseType() : method.outputType(); @@ -528,6 +544,7 @@ private static MethodDefinition createRpcTestMethod( TypeNode repeatedResponseType = null; VariableExpr responsesElementVarExpr = null; + String mockServiceVarName = getMockServiceVarName(rpcService); if (method.isPaged()) { Message methodOutputMessage = messageTypes.get(method.outputType().reference().simpleName()); Field repeatedPagedResultsField = methodOutputMessage.findAndUnwrapFirstRepeatedField(); @@ -596,6 +613,7 @@ private static MethodDefinition createRpcTestMethod( .setVariableExpr(expectedResponseVarExpr.toBuilder().setIsDecl(true).build()) .setValueExpr(expectedResponseValExpr) .build()); + if (method.hasLro()) { VariableExpr resultOperationVarExpr = VariableExpr.withVariable( @@ -613,14 +631,14 @@ private static MethodDefinition createRpcTestMethod( .build()); methodExprs.add( MethodInvocationExpr.builder() - .setExprReferenceExpr(classMemberVarExprs.get(getMockServiceVarName(service))) + .setExprReferenceExpr(classMemberVarExprs.get(mockServiceVarName)) .setMethodName("addResponse") .setArguments(resultOperationVarExpr) .build()); } else { methodExprs.add( MethodInvocationExpr.builder() - .setExprReferenceExpr(classMemberVarExprs.get(getMockServiceVarName(service))) + .setExprReferenceExpr(classMemberVarExprs.get(mockServiceVarName)) .setMethodName("addResponse") .setArguments(expectedResponseVarExpr) .build()); @@ -675,7 +693,12 @@ private static MethodDefinition createRpcTestMethod( VariableExpr.withVariable( Variable.builder() .setType( - method.isPaged() ? getPagedResponseType(method, service) : methodOutputType) + !method.isPaged() + ? methodOutputType + // If this method is a paginated mixin, use the host service, since + // ServiceClient defines the paged response class and the mixed-in service + // does not have a client. + : getPagedResponseType(method, method.isMixin() ? apiService : rpcService)) .setName(method.isPaged() ? "pagedListResponse" : "actualResponse") .build()); Expr rpcJavaMethodInvocationExpr = @@ -828,7 +851,7 @@ private static MethodDefinition createRpcTestMethod( .setVariableExpr(actualRequestsVarExpr.toBuilder().setIsDecl(true).build()) .setValueExpr( MethodInvocationExpr.builder() - .setExprReferenceExpr(classMemberVarExprs.get(getMockServiceVarName(service))) + .setExprReferenceExpr(classMemberVarExprs.get(mockServiceVarName)) .setMethodName("getRequests") .setReturnType(actualRequestsVarExpr.type()) .build()) @@ -1021,6 +1044,8 @@ private static MethodDefinition createStreamingRpcTestMethod( .setVariableExpr(expectedResponseVarExpr.toBuilder().setIsDecl(true).build()) .setValueExpr(expectedResponseValExpr) .build()); + + String mockServiceVarName = getMockServiceVarName(service); if (method.hasLro()) { VariableExpr resultOperationVarExpr = VariableExpr.withVariable( @@ -1038,14 +1063,14 @@ private static MethodDefinition createStreamingRpcTestMethod( .build()); methodExprs.add( MethodInvocationExpr.builder() - .setExprReferenceExpr(classMemberVarExprs.get(getMockServiceVarName(service))) + .setExprReferenceExpr(classMemberVarExprs.get(mockServiceVarName)) .setMethodName("addResponse") .setArguments(resultOperationVarExpr) .build()); } else { methodExprs.add( MethodInvocationExpr.builder() - .setExprReferenceExpr(classMemberVarExprs.get(getMockServiceVarName(service))) + .setExprReferenceExpr(classMemberVarExprs.get(mockServiceVarName)) .setMethodName("addResponse") .setArguments(expectedResponseVarExpr) .build()); @@ -1251,7 +1276,19 @@ private static MethodDefinition createStreamingRpcTestMethod( .build(); } - // TODO(imraleung): Reorder params. + /** + * Creates a test method to exercise exceptions for a given RPC, e.g. createAssetTest. + * + * @param method the RPC for which this test method is created. + * @param service the service that {@code method} belongs to. + * @param methodSignature the method signature of the RPC under test. + * @param variantIndex the nth variant of the RPC under test. This applies when we have + * polymorphism due to the presence of several method signature annotations in the proto. + * @param classMemberVarExprs the class members in the generated test class. + * @param resourceNames the resource names available for use. + * @param messageTypes the proto message types available for use. + */ + // TODO(miraleung): Reorder params. private static MethodDefinition createRpcExceptionTestMethod( Method method, Service service, @@ -1759,7 +1796,7 @@ private static Map createDefaultMethodNamesToTypes() { return javaMethodNameToReturnType; } - private static void addDynamicTypes(Service service, TypeStore typeStore) { + private static void addDynamicTypes(GapicContext context, Service service, TypeStore typeStore) { typeStore.putAll( service.pakkage(), Arrays.asList( @@ -1775,6 +1812,19 @@ private static void addDynamicTypes(Service service, TypeStore typeStore) { .collect(Collectors.toList()), true, ClassNames.getServiceClientClassName(service)); + for (Service mixinService : context.mixinServices()) { + typeStore.put(mixinService.pakkage(), ClassNames.getMockServiceClassName(mixinService)); + for (Method mixinMethod : mixinService.methods()) { + if (!mixinMethod.isPaged()) { + continue; + } + typeStore.put( + service.pakkage(), + String.format(PAGED_RESPONSE_TYPE_NAME_PATTERN, mixinMethod.name()), + true, + ClassNames.getServiceClientClassName(service)); + } + } } private static TypeNode getOperationCallSettingsType(Method protoMethod) { diff --git a/test/integration/BUILD.bazel b/test/integration/BUILD.bazel index a6c00f0bbd..24d2c9d104 100644 --- a/test/integration/BUILD.bazel +++ b/test/integration/BUILD.bazel @@ -12,7 +12,6 @@ load( "golden_update", "integration_test", ) - load("@rules_proto//proto:defs.bzl", "proto_library") package(default_visibility = ["//visibility:public"]) @@ -204,6 +203,7 @@ proto_library( "@com_google_googleapis//google/api:client_proto", "@com_google_googleapis//google/api:field_behavior_proto", "@com_google_googleapis//google/api:resource_proto", + "@com_google_googleapis//google/cloud/location:location_proto", "@com_google_googleapis//google/iam/v1:iam_policy_proto", "@com_google_googleapis//google/iam/v1:policy_proto", "@com_google_protobuf//:duration_proto", @@ -219,6 +219,7 @@ proto_library_with_info( deps = [ ":kms_proto", "@com_google_googleapis//google/cloud:common_resources_proto", + "@com_google_googleapis//google/cloud/location:location_proto", "@com_google_googleapis//google/iam/v1:iam_policy_proto", "@com_google_googleapis//google/iam/v1:policy_proto", ], @@ -243,10 +244,12 @@ java_gapic_library( service_yaml = "apis/kms/v1/cloudkms_test_mixins_v1.yaml", test_deps = [ ":kms_java_grpc", + "@com_google_googleapis//google/cloud/location:location_java_grpc", "@com_google_googleapis//google/iam/v1:iam_java_grpc", ], deps = [ ":kms_java_proto", + "@com_google_googleapis//google/cloud/location:location_java_proto", "@com_google_googleapis//google/iam/v1:iam_java_proto", ], ) @@ -267,5 +270,7 @@ java_gapic_assembly_gradle_pkg( "@com_google_googleapis//google/cloud/kms/v1:kms_java_grpc", "@com_google_googleapis//google/cloud/kms/v1:kms_java_proto", "@com_google_googleapis//google/cloud/kms/v1:kms_proto", + "@com_google_googleapis//google/cloud/location:location_java_grpc", + "@com_google_googleapis//google/cloud/location:location_java_proto", ], ) diff --git a/test/integration/apis/kms/v1/cloudkms_test_mixins_v1.yaml b/test/integration/apis/kms/v1/cloudkms_test_mixins_v1.yaml index 9acb41abb9..4190b62d0b 100644 --- a/test/integration/apis/kms/v1/cloudkms_test_mixins_v1.yaml +++ b/test/integration/apis/kms/v1/cloudkms_test_mixins_v1.yaml @@ -5,6 +5,7 @@ title: Cloud Key Management Service (KMS) API apis: - name: google.cloud.kms.v1.KeyManagementService +- name: google.cloud.location.Locations - name: google.iam.v1.IAMPolicy types: diff --git a/test/integration/goldens/kms/GrpcKeyManagementServiceStub.java b/test/integration/goldens/kms/GrpcKeyManagementServiceStub.java index 65b4ee5034..d1764393f5 100644 --- a/test/integration/goldens/kms/GrpcKeyManagementServiceStub.java +++ b/test/integration/goldens/kms/GrpcKeyManagementServiceStub.java @@ -20,6 +20,7 @@ import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeysPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListImportJobsPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListKeyRingsPagedResponse; +import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListLocationsPagedResponse; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.core.BackgroundResourceAggregation; @@ -64,6 +65,10 @@ import com.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest; import com.google.cloud.kms.v1.UpdateCryptoKeyRequest; import com.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest; +import com.google.cloud.location.GetLocationRequest; +import com.google.cloud.location.ListLocationsRequest; +import com.google.cloud.location.ListLocationsResponse; +import com.google.cloud.location.Location; import com.google.common.collect.ImmutableMap; import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.Policy; @@ -340,6 +345,25 @@ public class GrpcKeyManagementServiceStub extends KeyManagementServiceStub { ProtoUtils.marshaller(TestIamPermissionsResponse.getDefaultInstance())) .build(); + private static final MethodDescriptor + listLocationsMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.location.Locations/ListLocations") + .setRequestMarshaller( + ProtoUtils.marshaller(ListLocationsRequest.getDefaultInstance())) + .setResponseMarshaller( + ProtoUtils.marshaller(ListLocationsResponse.getDefaultInstance())) + .build(); + + private static final MethodDescriptor getLocationMethodDescriptor = + MethodDescriptor.newBuilder() + .setType(MethodDescriptor.MethodType.UNARY) + .setFullMethodName("google.cloud.location.Locations/GetLocation") + .setRequestMarshaller(ProtoUtils.marshaller(GetLocationRequest.getDefaultInstance())) + .setResponseMarshaller(ProtoUtils.marshaller(Location.getDefaultInstance())) + .build(); + private final UnaryCallable listKeyRingsCallable; private final UnaryCallable listKeyRingsPagedCallable; @@ -384,6 +408,10 @@ public class GrpcKeyManagementServiceStub extends KeyManagementServiceStub { private final UnaryCallable setIamPolicyCallable; private final UnaryCallable testIamPermissionsCallable; + private final UnaryCallable listLocationsCallable; + private final UnaryCallable + listLocationsPagedCallable; + private final UnaryCallable getLocationCallable; private final BackgroundResource backgroundResources; private final GrpcOperationsStub operationsStub; @@ -784,6 +812,32 @@ public Map extract(TestIamPermissionsRequest request) { } }) .build(); + GrpcCallSettings listLocationsTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(listLocationsMethodDescriptor) + .setParamsExtractor( + new RequestParamsExtractor() { + @Override + public Map extract(ListLocationsRequest request) { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("name", String.valueOf(request.getName())); + return params.build(); + } + }) + .build(); + GrpcCallSettings getLocationTransportSettings = + GrpcCallSettings.newBuilder() + .setMethodDescriptor(getLocationMethodDescriptor) + .setParamsExtractor( + new RequestParamsExtractor() { + @Override + public Map extract(GetLocationRequest request) { + ImmutableMap.Builder params = ImmutableMap.builder(); + params.put("name", String.valueOf(request.getName())); + return params.build(); + } + }) + .build(); this.listKeyRingsCallable = callableFactory.createUnaryCallable( @@ -897,6 +951,15 @@ public Map extract(TestIamPermissionsRequest request) { testIamPermissionsTransportSettings, settings.testIamPermissionsSettings(), clientContext); + this.listLocationsCallable = + callableFactory.createUnaryCallable( + listLocationsTransportSettings, settings.listLocationsSettings(), clientContext); + this.listLocationsPagedCallable = + callableFactory.createPagedCallable( + listLocationsTransportSettings, settings.listLocationsSettings(), clientContext); + this.getLocationCallable = + callableFactory.createUnaryCallable( + getLocationTransportSettings, settings.getLocationSettings(), clientContext); this.backgroundResources = new BackgroundResourceAggregation(clientContext.getBackgroundResources()); @@ -1068,6 +1131,22 @@ public UnaryCallable setIamPolicyCallable() { return testIamPermissionsCallable; } + @Override + public UnaryCallable listLocationsCallable() { + return listLocationsCallable; + } + + @Override + public UnaryCallable + listLocationsPagedCallable() { + return listLocationsPagedCallable; + } + + @Override + public UnaryCallable getLocationCallable() { + return getLocationCallable; + } + @Override public final void close() { shutdown(); diff --git a/test/integration/goldens/kms/KeyManagementServiceClient.java b/test/integration/goldens/kms/KeyManagementServiceClient.java index 5144fc1aba..56c5a0c994 100644 --- a/test/integration/goldens/kms/KeyManagementServiceClient.java +++ b/test/integration/goldens/kms/KeyManagementServiceClient.java @@ -29,6 +29,10 @@ import com.google.api.resourcenames.ResourceName; import com.google.cloud.kms.v1.stub.KeyManagementServiceStub; import com.google.cloud.kms.v1.stub.KeyManagementServiceStubSettings; +import com.google.cloud.location.GetLocationRequest; +import com.google.cloud.location.ListLocationsRequest; +import com.google.cloud.location.ListLocationsResponse; +import com.google.cloud.location.Location; import com.google.common.util.concurrent.MoreExecutors; import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.Policy; @@ -3268,6 +3272,136 @@ public final TestIamPermissionsResponse testIamPermissions(TestIamPermissionsReq return stub.testIamPermissionsCallable(); } + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists information about the supported locations for this service. + * + *

Sample code: + * + *

{@code
+   * try (KeyManagementServiceClient keyManagementServiceClient =
+   *     KeyManagementServiceClient.create()) {
+   *   ListLocationsRequest request =
+   *       ListLocationsRequest.newBuilder()
+   *           .setName("name3373707")
+   *           .setFilter("filter-1274492040")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   for (Location element : keyManagementServiceClient.listLocations(request).iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListLocationsPagedResponse listLocations(ListLocationsRequest request) { + return listLocationsPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists information about the supported locations for this service. + * + *

Sample code: + * + *

{@code
+   * try (KeyManagementServiceClient keyManagementServiceClient =
+   *     KeyManagementServiceClient.create()) {
+   *   ListLocationsRequest request =
+   *       ListLocationsRequest.newBuilder()
+   *           .setName("name3373707")
+   *           .setFilter("filter-1274492040")
+   *           .setPageSize(883849137)
+   *           .setPageToken("pageToken873572522")
+   *           .build();
+   *   ApiFuture future =
+   *       keyManagementServiceClient.listLocationsPagedCallable().futureCall(request);
+   *   // Do something.
+   *   for (Location element : future.get().iterateAll()) {
+   *     // doThingsWith(element);
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable + listLocationsPagedCallable() { + return stub.listLocationsPagedCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists information about the supported locations for this service. + * + *

Sample code: + * + *

{@code
+   * try (KeyManagementServiceClient keyManagementServiceClient =
+   *     KeyManagementServiceClient.create()) {
+   *   while (true) {
+   *     ListLocationsResponse response =
+   *         keyManagementServiceClient.listLocationsCallable().call(request);
+   *     for (Location element : response.getResponsesList()) {
+   *       // doThingsWith(element);
+   *     }
+   *     String nextPageToken = response.getNextPageToken();
+   *     if (!Strings.isNullOrEmpty(nextPageToken)) {
+   *       request = request.toBuilder().setPageToken(nextPageToken).build();
+   *     } else {
+   *       break;
+   *     }
+   *   }
+   * }
+   * }
+ */ + public final UnaryCallable listLocationsCallable() { + return stub.listLocationsCallable(); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Gets information about a location. + * + *

Sample code: + * + *

{@code
+   * try (KeyManagementServiceClient keyManagementServiceClient =
+   *     KeyManagementServiceClient.create()) {
+   *   GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
+   *   Location response = keyManagementServiceClient.getLocation(request);
+   * }
+   * }
+ * + * @param request The request object containing all of the parameters for the API call. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Location getLocation(GetLocationRequest request) { + return getLocationCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Gets information about a location. + * + *

Sample code: + * + *

{@code
+   * try (KeyManagementServiceClient keyManagementServiceClient =
+   *     KeyManagementServiceClient.create()) {
+   *   GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build();
+   *   ApiFuture future =
+   *       keyManagementServiceClient.getLocationCallable().futureCall(request);
+   *   // Do something.
+   *   Location response = future.get();
+   * }
+   * }
+ */ + public final UnaryCallable getLocationCallable() { + return stub.getLocationCallable(); + } + @Override public final void close() { stub.close(); @@ -3628,4 +3762,85 @@ protected ListImportJobsFixedSizeCollection createCollection( return new ListImportJobsFixedSizeCollection(pages, collectionSize); } } + + public static class ListLocationsPagedResponse + extends AbstractPagedListResponse< + ListLocationsRequest, + ListLocationsResponse, + Location, + ListLocationsPage, + ListLocationsFixedSizeCollection> { + + public static ApiFuture createAsync( + PageContext context, + ApiFuture futureResponse) { + ApiFuture futurePage = + ListLocationsPage.createEmptyPage().createPageAsync(context, futureResponse); + return ApiFutures.transform( + futurePage, + new ApiFunction() { + @Override + public ListLocationsPagedResponse apply(ListLocationsPage input) { + return new ListLocationsPagedResponse(input); + } + }, + MoreExecutors.directExecutor()); + } + + private ListLocationsPagedResponse(ListLocationsPage page) { + super(page, ListLocationsFixedSizeCollection.createEmptyCollection()); + } + } + + public static class ListLocationsPage + extends AbstractPage< + ListLocationsRequest, ListLocationsResponse, Location, ListLocationsPage> { + + private ListLocationsPage( + PageContext context, + ListLocationsResponse response) { + super(context, response); + } + + private static ListLocationsPage createEmptyPage() { + return new ListLocationsPage(null, null); + } + + @Override + protected ListLocationsPage createPage( + PageContext context, + ListLocationsResponse response) { + return new ListLocationsPage(context, response); + } + + @Override + public ApiFuture createPageAsync( + PageContext context, + ApiFuture futureResponse) { + return super.createPageAsync(context, futureResponse); + } + } + + public static class ListLocationsFixedSizeCollection + extends AbstractFixedSizeCollection< + ListLocationsRequest, + ListLocationsResponse, + Location, + ListLocationsPage, + ListLocationsFixedSizeCollection> { + + private ListLocationsFixedSizeCollection(List pages, int collectionSize) { + super(pages, collectionSize); + } + + private static ListLocationsFixedSizeCollection createEmptyCollection() { + return new ListLocationsFixedSizeCollection(null, 0); + } + + @Override + protected ListLocationsFixedSizeCollection createCollection( + List pages, int collectionSize) { + return new ListLocationsFixedSizeCollection(pages, collectionSize); + } + } } diff --git a/test/integration/goldens/kms/KeyManagementServiceClientTest.java b/test/integration/goldens/kms/KeyManagementServiceClientTest.java index 8b68f9af8f..6e15e4ff0e 100644 --- a/test/integration/goldens/kms/KeyManagementServiceClientTest.java +++ b/test/integration/goldens/kms/KeyManagementServiceClientTest.java @@ -20,6 +20,7 @@ import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeysPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListImportJobsPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListKeyRingsPagedResponse; +import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListLocationsPagedResponse; import com.google.api.gax.core.NoCredentialsProvider; import com.google.api.gax.grpc.GaxGrpcProperties; @@ -29,6 +30,11 @@ import com.google.api.gax.rpc.ApiClientHeaderProvider; import com.google.api.gax.rpc.InvalidArgumentException; import com.google.api.resourcenames.ResourceName; +import com.google.cloud.location.GetLocationRequest; +import com.google.cloud.location.ListLocationsRequest; +import com.google.cloud.location.ListLocationsResponse; +import com.google.cloud.location.Location; +import com.google.cloud.location.MockLocations; import com.google.common.collect.Lists; import com.google.iam.v1.Binding; import com.google.iam.v1.GetIamPolicyRequest; @@ -39,6 +45,7 @@ import com.google.iam.v1.TestIamPermissionsRequest; import com.google.iam.v1.TestIamPermissionsResponse; import com.google.protobuf.AbstractMessage; +import com.google.protobuf.Any; import com.google.protobuf.ByteString; import com.google.protobuf.FieldMask; import com.google.protobuf.Int64Value; @@ -64,16 +71,18 @@ public class KeyManagementServiceClientTest { private static MockServiceHelper mockServiceHelper; private KeyManagementServiceClient client; private static MockIAMPolicy mockIAMPolicy; + private static MockLocations mockLocations; private LocalChannelProvider channelProvider; @BeforeClass public static void startStaticServer() { mockKeyManagementService = new MockKeyManagementService(); mockIAMPolicy = new MockIAMPolicy(); + mockLocations = new MockLocations(); mockServiceHelper = new MockServiceHelper( UUID.randomUUID().toString(), - Arrays.asList(mockKeyManagementService, mockIAMPolicy)); + Arrays.asList(mockKeyManagementService, mockIAMPolicy, mockLocations)); mockServiceHelper.start(); } @@ -2357,4 +2366,105 @@ public void testIamPermissionsExceptionTest() throws Exception { // Expected exception. } } + + @Test + public void listLocationsTest() throws Exception { + Location responsesElement = Location.newBuilder().build(); + ListLocationsResponse expectedResponse = + ListLocationsResponse.newBuilder() + .setNextPageToken("") + .addAllLocations(Arrays.asList(responsesElement)) + .build(); + mockLocations.addResponse(expectedResponse); + + ListLocationsRequest request = + ListLocationsRequest.newBuilder() + .setName("name3373707") + .setFilter("filter-1274492040") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + + ListLocationsPagedResponse pagedListResponse = client.listLocations(request); + + List resources = Lists.newArrayList(pagedListResponse.iterateAll()); + + Assert.assertEquals(1, resources.size()); + Assert.assertEquals(expectedResponse.getLocationsList().get(0), resources.get(0)); + + List actualRequests = mockLocations.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + ListLocationsRequest actualRequest = ((ListLocationsRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getName(), actualRequest.getName()); + Assert.assertEquals(request.getFilter(), actualRequest.getFilter()); + Assert.assertEquals(request.getPageSize(), actualRequest.getPageSize()); + Assert.assertEquals(request.getPageToken(), actualRequest.getPageToken()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void listLocationsExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockLocations.addException(exception); + + try { + ListLocationsRequest request = + ListLocationsRequest.newBuilder() + .setName("name3373707") + .setFilter("filter-1274492040") + .setPageSize(883849137) + .setPageToken("pageToken873572522") + .build(); + client.listLocations(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } + + @Test + public void getLocationTest() throws Exception { + Location expectedResponse = + Location.newBuilder() + .setName("name3373707") + .setLocationId("locationId1541836720") + .setDisplayName("displayName1714148973") + .putAllLabels(new HashMap()) + .setMetadata(Any.newBuilder().build()) + .build(); + mockLocations.addResponse(expectedResponse); + + GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build(); + + Location actualResponse = client.getLocation(request); + Assert.assertEquals(expectedResponse, actualResponse); + + List actualRequests = mockLocations.getRequests(); + Assert.assertEquals(1, actualRequests.size()); + GetLocationRequest actualRequest = ((GetLocationRequest) actualRequests.get(0)); + + Assert.assertEquals(request.getName(), actualRequest.getName()); + Assert.assertTrue( + channelProvider.isHeaderSent( + ApiClientHeaderProvider.getDefaultApiClientHeaderKey(), + GaxGrpcProperties.getDefaultApiClientHeaderPattern())); + } + + @Test + public void getLocationExceptionTest() throws Exception { + StatusRuntimeException exception = new StatusRuntimeException(io.grpc.Status.INVALID_ARGUMENT); + mockLocations.addException(exception); + + try { + GetLocationRequest request = GetLocationRequest.newBuilder().setName("name3373707").build(); + client.getLocation(request); + Assert.fail("No exception raised"); + } catch (InvalidArgumentException e) { + // Expected exception. + } + } } diff --git a/test/integration/goldens/kms/KeyManagementServiceSettings.java b/test/integration/goldens/kms/KeyManagementServiceSettings.java index 1f46d029c3..699609b111 100644 --- a/test/integration/goldens/kms/KeyManagementServiceSettings.java +++ b/test/integration/goldens/kms/KeyManagementServiceSettings.java @@ -20,6 +20,7 @@ import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeysPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListImportJobsPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListKeyRingsPagedResponse; +import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListLocationsPagedResponse; import com.google.api.core.ApiFunction; import com.google.api.core.BetaApi; @@ -34,6 +35,10 @@ import com.google.api.gax.rpc.TransportChannelProvider; import com.google.api.gax.rpc.UnaryCallSettings; import com.google.cloud.kms.v1.stub.KeyManagementServiceStubSettings; +import com.google.cloud.location.GetLocationRequest; +import com.google.cloud.location.ListLocationsRequest; +import com.google.cloud.location.ListLocationsResponse; +import com.google.cloud.location.Location; import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; @@ -228,6 +233,17 @@ public UnaryCallSettings setIamPolicySettings() { return ((KeyManagementServiceStubSettings) getStubSettings()).testIamPermissionsSettings(); } + /** Returns the object with the settings used for calls to listLocations. */ + public PagedCallSettings + listLocationsSettings() { + return ((KeyManagementServiceStubSettings) getStubSettings()).listLocationsSettings(); + } + + /** Returns the object with the settings used for calls to getLocation. */ + public UnaryCallSettings getLocationSettings() { + return ((KeyManagementServiceStubSettings) getStubSettings()).getLocationSettings(); + } + public static final KeyManagementServiceSettings create(KeyManagementServiceStubSettings stub) throws IOException { return new KeyManagementServiceSettings.Builder(stub.toBuilder()).build(); @@ -477,6 +493,18 @@ public UnaryCallSettings.Builder setIamPolicySettin return getStubSettingsBuilder().testIamPermissionsSettings(); } + /** Returns the builder for the settings used for calls to listLocations. */ + public PagedCallSettings.Builder< + ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse> + listLocationsSettings() { + return getStubSettingsBuilder().listLocationsSettings(); + } + + /** Returns the builder for the settings used for calls to getLocation. */ + public UnaryCallSettings.Builder getLocationSettings() { + return getStubSettingsBuilder().getLocationSettings(); + } + @Override public KeyManagementServiceSettings build() throws IOException { return new KeyManagementServiceSettings(this); diff --git a/test/integration/goldens/kms/KeyManagementServiceStub.java b/test/integration/goldens/kms/KeyManagementServiceStub.java index de64e0ed7e..19a0dd1749 100644 --- a/test/integration/goldens/kms/KeyManagementServiceStub.java +++ b/test/integration/goldens/kms/KeyManagementServiceStub.java @@ -20,6 +20,7 @@ import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeysPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListImportJobsPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListKeyRingsPagedResponse; +import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListLocationsPagedResponse; import com.google.api.gax.core.BackgroundResource; import com.google.api.gax.rpc.UnaryCallable; @@ -59,6 +60,10 @@ import com.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest; import com.google.cloud.kms.v1.UpdateCryptoKeyRequest; import com.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest; +import com.google.cloud.location.GetLocationRequest; +import com.google.cloud.location.ListLocationsRequest; +import com.google.cloud.location.ListLocationsResponse; +import com.google.cloud.location.Location; import com.google.iam.v1.GetIamPolicyRequest; import com.google.iam.v1.Policy; import com.google.iam.v1.SetIamPolicyRequest; @@ -209,6 +214,19 @@ public UnaryCallable setIamPolicyCallable() { throw new UnsupportedOperationException("Not implemented: testIamPermissionsCallable()"); } + public UnaryCallable + listLocationsPagedCallable() { + throw new UnsupportedOperationException("Not implemented: listLocationsPagedCallable()"); + } + + public UnaryCallable listLocationsCallable() { + throw new UnsupportedOperationException("Not implemented: listLocationsCallable()"); + } + + public UnaryCallable getLocationCallable() { + throw new UnsupportedOperationException("Not implemented: getLocationCallable()"); + } + @Override public abstract void close(); } diff --git a/test/integration/goldens/kms/KeyManagementServiceStubSettings.java b/test/integration/goldens/kms/KeyManagementServiceStubSettings.java index 260f7fdd39..c700ebb518 100644 --- a/test/integration/goldens/kms/KeyManagementServiceStubSettings.java +++ b/test/integration/goldens/kms/KeyManagementServiceStubSettings.java @@ -20,6 +20,7 @@ import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListCryptoKeysPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListImportJobsPagedResponse; import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListKeyRingsPagedResponse; +import static com.google.cloud.kms.v1.KeyManagementServiceClient.ListLocationsPagedResponse; import com.google.api.core.ApiFunction; import com.google.api.core.ApiFuture; @@ -79,6 +80,10 @@ import com.google.cloud.kms.v1.UpdateCryptoKeyPrimaryVersionRequest; import com.google.cloud.kms.v1.UpdateCryptoKeyRequest; import com.google.cloud.kms.v1.UpdateCryptoKeyVersionRequest; +import com.google.cloud.location.GetLocationRequest; +import com.google.cloud.location.ListLocationsRequest; +import com.google.cloud.location.ListLocationsResponse; +import com.google.cloud.location.Location; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -182,6 +187,10 @@ public class KeyManagementServiceStubSettings private final UnaryCallSettings setIamPolicySettings; private final UnaryCallSettings testIamPermissionsSettings; + private final PagedCallSettings< + ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse> + listLocationsSettings; + private final UnaryCallSettings getLocationSettings; private static final PagedListDescriptor LIST_KEY_RINGS_PAGE_STR_DESC = @@ -334,6 +343,42 @@ public Iterable extractResources(ListImportJobsResponse payload) { } }; + private static final PagedListDescriptor + LIST_LOCATIONS_PAGE_STR_DESC = + new PagedListDescriptor() { + @Override + public String emptyToken() { + return ""; + } + + @Override + public ListLocationsRequest injectToken(ListLocationsRequest payload, String token) { + return ListLocationsRequest.newBuilder(payload).setPageToken(token).build(); + } + + @Override + public ListLocationsRequest injectPageSize(ListLocationsRequest payload, int pageSize) { + return ListLocationsRequest.newBuilder(payload).setPageSize(pageSize).build(); + } + + @Override + public Integer extractPageSize(ListLocationsRequest payload) { + return payload.getPageSize(); + } + + @Override + public String extractNextToken(ListLocationsResponse payload) { + return payload.getNextPageToken(); + } + + @Override + public Iterable extractResources(ListLocationsResponse payload) { + return payload.getLocationsList() == null + ? ImmutableList.of() + : payload.getLocationsList(); + } + }; + private static final PagedListResponseFactory< ListKeyRingsRequest, ListKeyRingsResponse, ListKeyRingsPagedResponse> LIST_KEY_RINGS_PAGE_STR_FACT = @@ -409,6 +454,23 @@ public ApiFuture getFuturePagedResponse( } }; + private static final PagedListResponseFactory< + ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse> + LIST_LOCATIONS_PAGE_STR_FACT = + new PagedListResponseFactory< + ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse>() { + @Override + public ApiFuture getFuturePagedResponse( + UnaryCallable callable, + ListLocationsRequest request, + ApiCallContext context, + ApiFuture futureResponse) { + PageContext pageContext = + PageContext.create(callable, LIST_LOCATIONS_PAGE_STR_DESC, request, context); + return ListLocationsPagedResponse.createAsync(pageContext, futureResponse); + } + }; + /** Returns the object with the settings used for calls to listKeyRings. */ public PagedCallSettings listKeyRingsSettings() { @@ -557,6 +619,17 @@ public UnaryCallSettings setIamPolicySettings() { return testIamPermissionsSettings; } + /** Returns the object with the settings used for calls to listLocations. */ + public PagedCallSettings + listLocationsSettings() { + return listLocationsSettings; + } + + /** Returns the object with the settings used for calls to getLocation. */ + public UnaryCallSettings getLocationSettings() { + return getLocationSettings; + } + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") public KeyManagementServiceStub createStub() throws IOException { if (getTransportChannelProvider() @@ -653,6 +726,8 @@ protected KeyManagementServiceStubSettings(Builder settingsBuilder) throws IOExc getIamPolicySettings = settingsBuilder.getIamPolicySettings().build(); setIamPolicySettings = settingsBuilder.setIamPolicySettings().build(); testIamPermissionsSettings = settingsBuilder.testIamPermissionsSettings().build(); + listLocationsSettings = settingsBuilder.listLocationsSettings().build(); + getLocationSettings = settingsBuilder.getLocationSettings().build(); } /** Builder for KeyManagementServiceStubSettings. */ @@ -708,6 +783,10 @@ public static class Builder private final UnaryCallSettings.Builder setIamPolicySettings; private final UnaryCallSettings.Builder testIamPermissionsSettings; + private final PagedCallSettings.Builder< + ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse> + listLocationsSettings; + private final UnaryCallSettings.Builder getLocationSettings; private static final ImmutableMap> RETRYABLE_CODE_DEFINITIONS; @@ -721,6 +800,7 @@ public static class Builder StatusCode.Code.UNAVAILABLE, StatusCode.Code.DEADLINE_EXCEEDED))); definitions.put( "no_retry_0_codes", ImmutableSet.copyOf(Lists.newArrayList())); + definitions.put("no_retry_codes", ImmutableSet.copyOf(Lists.newArrayList())); RETRYABLE_CODE_DEFINITIONS = definitions.build(); } @@ -748,6 +828,8 @@ public static class Builder .setTotalTimeout(Duration.ofMillis(60000L)) .build(); definitions.put("no_retry_0_params", settings); + settings = RetrySettings.newBuilder().setRpcTimeoutMultiplier(1.0).build(); + definitions.put("no_retry_params", settings); RETRY_PARAM_DEFINITIONS = definitions.build(); } @@ -785,6 +867,8 @@ protected Builder(ClientContext clientContext) { getIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); setIamPolicySettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); testIamPermissionsSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); + listLocationsSettings = PagedCallSettings.newBuilder(LIST_LOCATIONS_PAGE_STR_FACT); + getLocationSettings = UnaryCallSettings.newUnaryCallSettingsBuilder(); unaryMethodSettingsBuilders = ImmutableList.>of( @@ -813,7 +897,9 @@ protected Builder(ClientContext clientContext) { restoreCryptoKeyVersionSettings, getIamPolicySettings, setIamPolicySettings, - testIamPermissionsSettings); + testIamPermissionsSettings, + listLocationsSettings, + getLocationSettings); initDefaults(this); } @@ -847,6 +933,8 @@ protected Builder(KeyManagementServiceStubSettings settings) { getIamPolicySettings = settings.getIamPolicySettings.toBuilder(); setIamPolicySettings = settings.setIamPolicySettings.toBuilder(); testIamPermissionsSettings = settings.testIamPermissionsSettings.toBuilder(); + listLocationsSettings = settings.listLocationsSettings.toBuilder(); + getLocationSettings = settings.getLocationSettings.toBuilder(); unaryMethodSettingsBuilders = ImmutableList.>of( @@ -875,7 +963,9 @@ protected Builder(KeyManagementServiceStubSettings settings) { restoreCryptoKeyVersionSettings, getIamPolicySettings, setIamPolicySettings, - testIamPermissionsSettings); + testIamPermissionsSettings, + listLocationsSettings, + getLocationSettings); } private static Builder createDefault() { @@ -1020,6 +1110,16 @@ private static Builder initDefaults(Builder builder) { .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("retry_policy_1_codes")) .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("retry_policy_1_params")); + builder + .listLocationsSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + + builder + .getLocationSettings() + .setRetryableCodes(RETRYABLE_CODE_DEFINITIONS.get("no_retry_codes")) + .setRetrySettings(RETRY_PARAM_DEFINITIONS.get("no_retry_params")); + return builder; } @@ -1189,6 +1289,18 @@ public UnaryCallSettings.Builder setIamPolicySettin return testIamPermissionsSettings; } + /** Returns the builder for the settings used for calls to listLocations. */ + public PagedCallSettings.Builder< + ListLocationsRequest, ListLocationsResponse, ListLocationsPagedResponse> + listLocationsSettings() { + return listLocationsSettings; + } + + /** Returns the builder for the settings used for calls to getLocation. */ + public UnaryCallSettings.Builder getLocationSettings() { + return getLocationSettings; + } + @Override public KeyManagementServiceStubSettings build() throws IOException { return new KeyManagementServiceStubSettings(this); diff --git a/test/integration/goldens/kms/MockLocations.java b/test/integration/goldens/kms/MockLocations.java new file mode 100644 index 0000000000..6afa0e0a7d --- /dev/null +++ b/test/integration/goldens/kms/MockLocations.java @@ -0,0 +1,59 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.location; + +import com.google.api.core.BetaApi; +import com.google.api.gax.grpc.testing.MockGrpcService; +import com.google.protobuf.AbstractMessage; +import io.grpc.ServerServiceDefinition; +import java.util.List; +import javax.annotation.Generated; + +@BetaApi +@Generated("by gapic-generator-java") +public class MockLocations implements MockGrpcService { + private final MockLocationsImpl serviceImpl; + + public MockLocations() { + serviceImpl = new MockLocationsImpl(); + } + + @Override + public List getRequests() { + return serviceImpl.getRequests(); + } + + @Override + public void addResponse(AbstractMessage response) { + serviceImpl.addResponse(response); + } + + @Override + public void addException(Exception exception) { + serviceImpl.addException(exception); + } + + @Override + public ServerServiceDefinition getServiceDefinition() { + return serviceImpl.bindService(); + } + + @Override + public void reset() { + serviceImpl.reset(); + } +} diff --git a/test/integration/goldens/kms/MockLocationsImpl.java b/test/integration/goldens/kms/MockLocationsImpl.java new file mode 100644 index 0000000000..d2c5e0f8ab --- /dev/null +++ b/test/integration/goldens/kms/MockLocationsImpl.java @@ -0,0 +1,101 @@ +/* + * Copyright 2021 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.cloud.location; + +import com.google.api.core.BetaApi; +import com.google.cloud.location.LocationsGrpc.LocationsImplBase; +import com.google.protobuf.AbstractMessage; +import io.grpc.stub.StreamObserver; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.List; +import java.util.Queue; +import javax.annotation.Generated; + +@BetaApi +@Generated("by gapic-generator-java") +public class MockLocationsImpl extends LocationsImplBase { + private List requests; + private Queue responses; + + public MockLocationsImpl() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + public List getRequests() { + return requests; + } + + public void addResponse(AbstractMessage response) { + responses.add(response); + } + + public void setResponses(List responses) { + this.responses = new LinkedList(responses); + } + + public void addException(Exception exception) { + responses.add(exception); + } + + public void reset() { + requests = new ArrayList<>(); + responses = new LinkedList<>(); + } + + @Override + public void listLocations( + ListLocationsRequest request, StreamObserver responseObserver) { + Object response = responses.remove(); + if (response instanceof ListLocationsResponse) { + requests.add(request); + responseObserver.onNext(((ListLocationsResponse) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method ListLocations, expected %s or %s", + response.getClass().getName(), + ListLocationsResponse.class.getName(), + Exception.class.getName()))); + } + } + + @Override + public void getLocation(GetLocationRequest request, StreamObserver responseObserver) { + Object response = responses.remove(); + if (response instanceof Location) { + requests.add(request); + responseObserver.onNext(((Location) response)); + responseObserver.onCompleted(); + } else if (response instanceof Exception) { + responseObserver.onError(((Exception) response)); + } else { + responseObserver.onError( + new IllegalArgumentException( + String.format( + "Unrecognized response type %s for method GetLocation, expected %s or %s", + response.getClass().getName(), + Location.class.getName(), + Exception.class.getName()))); + } + } +} diff --git a/test/integration/goldens/kms/gapic_metadata.json b/test/integration/goldens/kms/gapic_metadata.json index e34e14ad07..a3c2c93ed7 100644 --- a/test/integration/goldens/kms/gapic_metadata.json +++ b/test/integration/goldens/kms/gapic_metadata.json @@ -52,6 +52,9 @@ "GetKeyRing": { "methods": ["getKeyRing", "getKeyRing", "getKeyRing", "getKeyRingCallable"] }, + "GetLocation": { + "methods": ["getLocation", "getLocationCallable"] + }, "GetPublicKey": { "methods": ["getPublicKey", "getPublicKey", "getPublicKey", "getPublicKeyCallable"] }, @@ -70,6 +73,9 @@ "ListKeyRings": { "methods": ["listKeyRings", "listKeyRings", "listKeyRings", "listKeyRingsPagedCallable", "listKeyRingsCallable"] }, + "ListLocations": { + "methods": ["listLocations", "listLocationsPagedCallable", "listLocationsCallable"] + }, "RestoreCryptoKeyVersion": { "methods": ["restoreCryptoKeyVersion", "restoreCryptoKeyVersion", "restoreCryptoKeyVersion", "restoreCryptoKeyVersionCallable"] }, From 0c921a6c1a869527165588736702694852e30341 Mon Sep 17 00:00:00 2001 From: Mira Leung Date: Wed, 10 Mar 2021 21:41:44 -0800 Subject: [PATCH 2/2] fix(engx): Handle nulls with poll() in MockServiceImpl --- .../MockServiceImplClassComposer.java | 24 +++-- .../composer/goldens/MockEchoImpl.golden | 30 +++--- .../goldens/asset/MockAssetServiceImpl.java | 50 +++++----- .../credentials/MockIAMCredentialsImpl.java | 16 ++-- .../goldens/iam/MockIAMPolicyImpl.java | 12 +-- .../goldens/kms/MockIAMPolicyImpl.java | 12 +-- .../kms/MockKeyManagementServiceImpl.java | 96 +++++++++---------- .../goldens/kms/MockLocationsImpl.java | 8 +- .../library/MockLibraryServiceImpl.java | 52 +++++----- .../logging/MockConfigServiceV2Impl.java | 92 +++++++++--------- .../logging/MockLoggingServiceV2Impl.java | 22 ++--- .../logging/MockMetricsServiceV2Impl.java | 20 ++-- .../goldens/redis/MockCloudRedisImpl.java | 36 +++---- 13 files changed, 247 insertions(+), 223 deletions(-) diff --git a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java index 2f5b777a6f..20b1f3f71e 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/MockServiceImplClassComposer.java @@ -28,9 +28,11 @@ import com.google.api.generator.engine.ast.MethodDefinition; import com.google.api.generator.engine.ast.MethodInvocationExpr; import com.google.api.generator.engine.ast.NewObjectExpr; +import com.google.api.generator.engine.ast.RelationalOperationExpr; import com.google.api.generator.engine.ast.ScopeNode; import com.google.api.generator.engine.ast.Statement; import com.google.api.generator.engine.ast.StringObjectValue; +import com.google.api.generator.engine.ast.TernaryExpr; import com.google.api.generator.engine.ast.ThisObjectValue; import com.google.api.generator.engine.ast.TypeNode; import com.google.api.generator.engine.ast.ValueExpr; @@ -304,7 +306,7 @@ private static MethodDefinition createGenericProtoMethodOverride(Method protoMet .setVariableExpr(localResponseVarExpr.toBuilder().setIsDecl(true).build()) .setValueExpr( MethodInvocationExpr.builder() - .setMethodName("remove") + .setMethodName("poll") .setExprReferenceExpr(responsesVarExpr) .setReturnType(objectType) .build()) @@ -485,15 +487,23 @@ private static Statement createHandleObjectStatement( } TypeNode exceptionType = TypeNode.withReference(ConcreteReference.withClazz(Exception.class)); + // Constructs `response == null ? "" : response.getClass().getName()`. Expr actualResponseTypeString = - MethodInvocationExpr.builder() - .setExprReferenceExpr( + TernaryExpr.builder() + .setConditionExpr( + RelationalOperationExpr.equalToWithExprs( + localResponseVarExpr, ValueExpr.createNullExpr())) + .setThenExpr(ValueExpr.withValue(StringObjectValue.withValue("null"))) + .setElseExpr( MethodInvocationExpr.builder() - .setExprReferenceExpr(localResponseVarExpr) - .setMethodName("getClass") + .setExprReferenceExpr( + MethodInvocationExpr.builder() + .setExprReferenceExpr(localResponseVarExpr) + .setMethodName("getClass") + .build()) + .setMethodName("getName") + .setReturnType(TypeNode.STRING) .build()) - .setMethodName("getName") - .setReturnType(TypeNode.STRING) .build(); Function typeToStrFn = t -> diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/MockEchoImpl.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/MockEchoImpl.golden index 6d78ee2827..50da1d568c 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/MockEchoImpl.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/MockEchoImpl.golden @@ -45,7 +45,7 @@ public class MockEchoImpl extends EchoImplBase { @Override public void echo(EchoRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof EchoResponse) { requests.add(request); responseObserver.onNext(((EchoResponse) response)); @@ -57,7 +57,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method Echo, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), EchoResponse.class.getName(), Exception.class.getName()))); } @@ -65,7 +65,7 @@ public class MockEchoImpl extends EchoImplBase { @Override public void expand(ExpandRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof EchoResponse) { requests.add(request); responseObserver.onNext(((EchoResponse) response)); @@ -77,7 +77,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method Expand, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), EchoResponse.class.getName(), Exception.class.getName()))); } @@ -100,7 +100,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method Collect, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), EchoResponse.class.getName(), Exception.class.getName()))); } @@ -136,7 +136,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method Chat, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), EchoResponse.class.getName(), Exception.class.getName()))); } @@ -173,7 +173,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method ChatAgain, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), EchoResponse.class.getName(), Exception.class.getName()))); } @@ -195,7 +195,7 @@ public class MockEchoImpl extends EchoImplBase { @Override public void pagedExpand( PagedExpandRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof PagedExpandResponse) { requests.add(request); responseObserver.onNext(((PagedExpandResponse) response)); @@ -207,7 +207,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method PagedExpand, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), PagedExpandResponse.class.getName(), Exception.class.getName()))); } @@ -216,7 +216,7 @@ public class MockEchoImpl extends EchoImplBase { @Override public void simplePagedExpand( PagedExpandRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof PagedExpandResponse) { requests.add(request); responseObserver.onNext(((PagedExpandResponse) response)); @@ -228,7 +228,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method SimplePagedExpand, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), PagedExpandResponse.class.getName(), Exception.class.getName()))); } @@ -236,7 +236,7 @@ public class MockEchoImpl extends EchoImplBase { @Override public void wait(WaitRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -248,7 +248,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method Wait, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -256,7 +256,7 @@ public class MockEchoImpl extends EchoImplBase { @Override public void block(BlockRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof BlockResponse) { requests.add(request); responseObserver.onNext(((BlockResponse) response)); @@ -268,7 +268,7 @@ public class MockEchoImpl extends EchoImplBase { new IllegalArgumentException( String.format( "Unrecognized response type %s for method Block, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), BlockResponse.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/asset/MockAssetServiceImpl.java b/test/integration/goldens/asset/MockAssetServiceImpl.java index 17a70d2a2c..27b5f4021b 100644 --- a/test/integration/goldens/asset/MockAssetServiceImpl.java +++ b/test/integration/goldens/asset/MockAssetServiceImpl.java @@ -63,7 +63,7 @@ public void reset() { @Override public void exportAssets( ExportAssetsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -75,7 +75,7 @@ public void exportAssets( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ExportAssets, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -85,7 +85,7 @@ public void exportAssets( public void batchGetAssetsHistory( BatchGetAssetsHistoryRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof BatchGetAssetsHistoryResponse) { requests.add(request); responseObserver.onNext(((BatchGetAssetsHistoryResponse) response)); @@ -97,7 +97,7 @@ public void batchGetAssetsHistory( new IllegalArgumentException( String.format( "Unrecognized response type %s for method BatchGetAssetsHistory, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), BatchGetAssetsHistoryResponse.class.getName(), Exception.class.getName()))); } @@ -105,7 +105,7 @@ public void batchGetAssetsHistory( @Override public void createFeed(CreateFeedRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Feed) { requests.add(request); responseObserver.onNext(((Feed) response)); @@ -117,13 +117,15 @@ public void createFeed(CreateFeedRequest request, StreamObserver responseO new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateFeed, expected %s or %s", - response.getClass().getName(), Feed.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Feed.class.getName(), + Exception.class.getName()))); } } @Override public void getFeed(GetFeedRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Feed) { requests.add(request); responseObserver.onNext(((Feed) response)); @@ -135,14 +137,16 @@ public void getFeed(GetFeedRequest request, StreamObserver responseObserve new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetFeed, expected %s or %s", - response.getClass().getName(), Feed.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Feed.class.getName(), + Exception.class.getName()))); } } @Override public void listFeeds( ListFeedsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListFeedsResponse) { requests.add(request); responseObserver.onNext(((ListFeedsResponse) response)); @@ -154,7 +158,7 @@ public void listFeeds( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListFeeds, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListFeedsResponse.class.getName(), Exception.class.getName()))); } @@ -162,7 +166,7 @@ public void listFeeds( @Override public void updateFeed(UpdateFeedRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Feed) { requests.add(request); responseObserver.onNext(((Feed) response)); @@ -174,13 +178,15 @@ public void updateFeed(UpdateFeedRequest request, StreamObserver responseO new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateFeed, expected %s or %s", - response.getClass().getName(), Feed.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Feed.class.getName(), + Exception.class.getName()))); } } @Override public void deleteFeed(DeleteFeedRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -192,7 +198,7 @@ public void deleteFeed(DeleteFeedRequest request, StreamObserver response new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteFeed, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -202,7 +208,7 @@ public void deleteFeed(DeleteFeedRequest request, StreamObserver response public void searchAllResources( SearchAllResourcesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof SearchAllResourcesResponse) { requests.add(request); responseObserver.onNext(((SearchAllResourcesResponse) response)); @@ -214,7 +220,7 @@ public void searchAllResources( new IllegalArgumentException( String.format( "Unrecognized response type %s for method SearchAllResources, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), SearchAllResourcesResponse.class.getName(), Exception.class.getName()))); } @@ -224,7 +230,7 @@ public void searchAllResources( public void searchAllIamPolicies( SearchAllIamPoliciesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof SearchAllIamPoliciesResponse) { requests.add(request); responseObserver.onNext(((SearchAllIamPoliciesResponse) response)); @@ -236,7 +242,7 @@ public void searchAllIamPolicies( new IllegalArgumentException( String.format( "Unrecognized response type %s for method SearchAllIamPolicies, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), SearchAllIamPoliciesResponse.class.getName(), Exception.class.getName()))); } @@ -245,7 +251,7 @@ public void searchAllIamPolicies( @Override public void analyzeIamPolicy( AnalyzeIamPolicyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof AnalyzeIamPolicyResponse) { requests.add(request); responseObserver.onNext(((AnalyzeIamPolicyResponse) response)); @@ -257,7 +263,7 @@ public void analyzeIamPolicy( new IllegalArgumentException( String.format( "Unrecognized response type %s for method AnalyzeIamPolicy, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), AnalyzeIamPolicyResponse.class.getName(), Exception.class.getName()))); } @@ -266,7 +272,7 @@ public void analyzeIamPolicy( @Override public void analyzeIamPolicyLongrunning( AnalyzeIamPolicyLongrunningRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -278,7 +284,7 @@ public void analyzeIamPolicyLongrunning( new IllegalArgumentException( String.format( "Unrecognized response type %s for method AnalyzeIamPolicyLongrunning, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/credentials/MockIAMCredentialsImpl.java b/test/integration/goldens/credentials/MockIAMCredentialsImpl.java index 42ae7d9f5d..6d135bfc95 100644 --- a/test/integration/goldens/credentials/MockIAMCredentialsImpl.java +++ b/test/integration/goldens/credentials/MockIAMCredentialsImpl.java @@ -62,7 +62,7 @@ public void reset() { public void generateAccessToken( GenerateAccessTokenRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof GenerateAccessTokenResponse) { requests.add(request); responseObserver.onNext(((GenerateAccessTokenResponse) response)); @@ -74,7 +74,7 @@ public void generateAccessToken( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GenerateAccessToken, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), GenerateAccessTokenResponse.class.getName(), Exception.class.getName()))); } @@ -83,7 +83,7 @@ public void generateAccessToken( @Override public void generateIdToken( GenerateIdTokenRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof GenerateIdTokenResponse) { requests.add(request); responseObserver.onNext(((GenerateIdTokenResponse) response)); @@ -95,7 +95,7 @@ public void generateIdToken( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GenerateIdToken, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), GenerateIdTokenResponse.class.getName(), Exception.class.getName()))); } @@ -103,7 +103,7 @@ public void generateIdToken( @Override public void signBlob(SignBlobRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof SignBlobResponse) { requests.add(request); responseObserver.onNext(((SignBlobResponse) response)); @@ -115,7 +115,7 @@ public void signBlob(SignBlobRequest request, StreamObserver r new IllegalArgumentException( String.format( "Unrecognized response type %s for method SignBlob, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), SignBlobResponse.class.getName(), Exception.class.getName()))); } @@ -123,7 +123,7 @@ public void signBlob(SignBlobRequest request, StreamObserver r @Override public void signJwt(SignJwtRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof SignJwtResponse) { requests.add(request); responseObserver.onNext(((SignJwtResponse) response)); @@ -135,7 +135,7 @@ public void signJwt(SignJwtRequest request, StreamObserver resp new IllegalArgumentException( String.format( "Unrecognized response type %s for method SignJwt, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), SignJwtResponse.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/iam/MockIAMPolicyImpl.java b/test/integration/goldens/iam/MockIAMPolicyImpl.java index be1c62eb33..fc661c900c 100644 --- a/test/integration/goldens/iam/MockIAMPolicyImpl.java +++ b/test/integration/goldens/iam/MockIAMPolicyImpl.java @@ -60,7 +60,7 @@ public void reset() { @Override public void setIamPolicy(SetIamPolicyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Policy) { requests.add(request); responseObserver.onNext(((Policy) response)); @@ -72,7 +72,7 @@ public void setIamPolicy(SetIamPolicyRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method SetIamPolicy, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Policy.class.getName(), Exception.class.getName()))); } @@ -80,7 +80,7 @@ public void setIamPolicy(SetIamPolicyRequest request, StreamObserver res @Override public void getIamPolicy(GetIamPolicyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Policy) { requests.add(request); responseObserver.onNext(((Policy) response)); @@ -92,7 +92,7 @@ public void getIamPolicy(GetIamPolicyRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetIamPolicy, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Policy.class.getName(), Exception.class.getName()))); } @@ -102,7 +102,7 @@ public void getIamPolicy(GetIamPolicyRequest request, StreamObserver res public void testIamPermissions( TestIamPermissionsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof TestIamPermissionsResponse) { requests.add(request); responseObserver.onNext(((TestIamPermissionsResponse) response)); @@ -114,7 +114,7 @@ public void testIamPermissions( new IllegalArgumentException( String.format( "Unrecognized response type %s for method TestIamPermissions, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), TestIamPermissionsResponse.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/kms/MockIAMPolicyImpl.java b/test/integration/goldens/kms/MockIAMPolicyImpl.java index be1c62eb33..fc661c900c 100644 --- a/test/integration/goldens/kms/MockIAMPolicyImpl.java +++ b/test/integration/goldens/kms/MockIAMPolicyImpl.java @@ -60,7 +60,7 @@ public void reset() { @Override public void setIamPolicy(SetIamPolicyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Policy) { requests.add(request); responseObserver.onNext(((Policy) response)); @@ -72,7 +72,7 @@ public void setIamPolicy(SetIamPolicyRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method SetIamPolicy, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Policy.class.getName(), Exception.class.getName()))); } @@ -80,7 +80,7 @@ public void setIamPolicy(SetIamPolicyRequest request, StreamObserver res @Override public void getIamPolicy(GetIamPolicyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Policy) { requests.add(request); responseObserver.onNext(((Policy) response)); @@ -92,7 +92,7 @@ public void getIamPolicy(GetIamPolicyRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetIamPolicy, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Policy.class.getName(), Exception.class.getName()))); } @@ -102,7 +102,7 @@ public void getIamPolicy(GetIamPolicyRequest request, StreamObserver res public void testIamPermissions( TestIamPermissionsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof TestIamPermissionsResponse) { requests.add(request); responseObserver.onNext(((TestIamPermissionsResponse) response)); @@ -114,7 +114,7 @@ public void testIamPermissions( new IllegalArgumentException( String.format( "Unrecognized response type %s for method TestIamPermissions, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), TestIamPermissionsResponse.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/kms/MockKeyManagementServiceImpl.java b/test/integration/goldens/kms/MockKeyManagementServiceImpl.java index 12480f5a51..ea5e33c816 100644 --- a/test/integration/goldens/kms/MockKeyManagementServiceImpl.java +++ b/test/integration/goldens/kms/MockKeyManagementServiceImpl.java @@ -63,7 +63,7 @@ public void reset() { @Override public void listKeyRings( ListKeyRingsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListKeyRingsResponse) { requests.add(request); responseObserver.onNext(((ListKeyRingsResponse) response)); @@ -75,7 +75,7 @@ public void listKeyRings( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListKeyRings, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListKeyRingsResponse.class.getName(), Exception.class.getName()))); } @@ -84,7 +84,7 @@ public void listKeyRings( @Override public void listCryptoKeys( ListCryptoKeysRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListCryptoKeysResponse) { requests.add(request); responseObserver.onNext(((ListCryptoKeysResponse) response)); @@ -96,7 +96,7 @@ public void listCryptoKeys( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListCryptoKeys, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListCryptoKeysResponse.class.getName(), Exception.class.getName()))); } @@ -106,7 +106,7 @@ public void listCryptoKeys( public void listCryptoKeyVersions( ListCryptoKeyVersionsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListCryptoKeyVersionsResponse) { requests.add(request); responseObserver.onNext(((ListCryptoKeyVersionsResponse) response)); @@ -118,7 +118,7 @@ public void listCryptoKeyVersions( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListCryptoKeyVersions, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListCryptoKeyVersionsResponse.class.getName(), Exception.class.getName()))); } @@ -127,7 +127,7 @@ public void listCryptoKeyVersions( @Override public void listImportJobs( ListImportJobsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListImportJobsResponse) { requests.add(request); responseObserver.onNext(((ListImportJobsResponse) response)); @@ -139,7 +139,7 @@ public void listImportJobs( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListImportJobs, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListImportJobsResponse.class.getName(), Exception.class.getName()))); } @@ -147,7 +147,7 @@ public void listImportJobs( @Override public void getKeyRing(GetKeyRingRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof KeyRing) { requests.add(request); responseObserver.onNext(((KeyRing) response)); @@ -159,7 +159,7 @@ public void getKeyRing(GetKeyRingRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetKeyRing, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), KeyRing.class.getName(), Exception.class.getName()))); } @@ -168,7 +168,7 @@ public void getKeyRing(GetKeyRingRequest request, StreamObserver respon @Override public void getCryptoKey( GetCryptoKeyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKey) { requests.add(request); responseObserver.onNext(((CryptoKey) response)); @@ -180,7 +180,7 @@ public void getCryptoKey( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetCryptoKey, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKey.class.getName(), Exception.class.getName()))); } @@ -189,7 +189,7 @@ public void getCryptoKey( @Override public void getCryptoKeyVersion( GetCryptoKeyVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKeyVersion) { requests.add(request); responseObserver.onNext(((CryptoKeyVersion) response)); @@ -201,7 +201,7 @@ public void getCryptoKeyVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetCryptoKeyVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKeyVersion.class.getName(), Exception.class.getName()))); } @@ -210,7 +210,7 @@ public void getCryptoKeyVersion( @Override public void getPublicKey( GetPublicKeyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof PublicKey) { requests.add(request); responseObserver.onNext(((PublicKey) response)); @@ -222,7 +222,7 @@ public void getPublicKey( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetPublicKey, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), PublicKey.class.getName(), Exception.class.getName()))); } @@ -231,7 +231,7 @@ public void getPublicKey( @Override public void getImportJob( GetImportJobRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ImportJob) { requests.add(request); responseObserver.onNext(((ImportJob) response)); @@ -243,7 +243,7 @@ public void getImportJob( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetImportJob, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ImportJob.class.getName(), Exception.class.getName()))); } @@ -252,7 +252,7 @@ public void getImportJob( @Override public void createKeyRing( CreateKeyRingRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof KeyRing) { requests.add(request); responseObserver.onNext(((KeyRing) response)); @@ -264,7 +264,7 @@ public void createKeyRing( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateKeyRing, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), KeyRing.class.getName(), Exception.class.getName()))); } @@ -273,7 +273,7 @@ public void createKeyRing( @Override public void createCryptoKey( CreateCryptoKeyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKey) { requests.add(request); responseObserver.onNext(((CryptoKey) response)); @@ -285,7 +285,7 @@ public void createCryptoKey( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateCryptoKey, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKey.class.getName(), Exception.class.getName()))); } @@ -294,7 +294,7 @@ public void createCryptoKey( @Override public void createCryptoKeyVersion( CreateCryptoKeyVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKeyVersion) { requests.add(request); responseObserver.onNext(((CryptoKeyVersion) response)); @@ -306,7 +306,7 @@ public void createCryptoKeyVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateCryptoKeyVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKeyVersion.class.getName(), Exception.class.getName()))); } @@ -315,7 +315,7 @@ public void createCryptoKeyVersion( @Override public void importCryptoKeyVersion( ImportCryptoKeyVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKeyVersion) { requests.add(request); responseObserver.onNext(((CryptoKeyVersion) response)); @@ -327,7 +327,7 @@ public void importCryptoKeyVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ImportCryptoKeyVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKeyVersion.class.getName(), Exception.class.getName()))); } @@ -336,7 +336,7 @@ public void importCryptoKeyVersion( @Override public void createImportJob( CreateImportJobRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ImportJob) { requests.add(request); responseObserver.onNext(((ImportJob) response)); @@ -348,7 +348,7 @@ public void createImportJob( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateImportJob, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ImportJob.class.getName(), Exception.class.getName()))); } @@ -357,7 +357,7 @@ public void createImportJob( @Override public void updateCryptoKey( UpdateCryptoKeyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKey) { requests.add(request); responseObserver.onNext(((CryptoKey) response)); @@ -369,7 +369,7 @@ public void updateCryptoKey( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateCryptoKey, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKey.class.getName(), Exception.class.getName()))); } @@ -378,7 +378,7 @@ public void updateCryptoKey( @Override public void updateCryptoKeyVersion( UpdateCryptoKeyVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKeyVersion) { requests.add(request); responseObserver.onNext(((CryptoKeyVersion) response)); @@ -390,7 +390,7 @@ public void updateCryptoKeyVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateCryptoKeyVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKeyVersion.class.getName(), Exception.class.getName()))); } @@ -398,7 +398,7 @@ public void updateCryptoKeyVersion( @Override public void encrypt(EncryptRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof EncryptResponse) { requests.add(request); responseObserver.onNext(((EncryptResponse) response)); @@ -410,7 +410,7 @@ public void encrypt(EncryptRequest request, StreamObserver resp new IllegalArgumentException( String.format( "Unrecognized response type %s for method Encrypt, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), EncryptResponse.class.getName(), Exception.class.getName()))); } @@ -418,7 +418,7 @@ public void encrypt(EncryptRequest request, StreamObserver resp @Override public void decrypt(DecryptRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof DecryptResponse) { requests.add(request); responseObserver.onNext(((DecryptResponse) response)); @@ -430,7 +430,7 @@ public void decrypt(DecryptRequest request, StreamObserver resp new IllegalArgumentException( String.format( "Unrecognized response type %s for method Decrypt, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), DecryptResponse.class.getName(), Exception.class.getName()))); } @@ -439,7 +439,7 @@ public void decrypt(DecryptRequest request, StreamObserver resp @Override public void asymmetricSign( AsymmetricSignRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof AsymmetricSignResponse) { requests.add(request); responseObserver.onNext(((AsymmetricSignResponse) response)); @@ -451,7 +451,7 @@ public void asymmetricSign( new IllegalArgumentException( String.format( "Unrecognized response type %s for method AsymmetricSign, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), AsymmetricSignResponse.class.getName(), Exception.class.getName()))); } @@ -461,7 +461,7 @@ public void asymmetricSign( public void asymmetricDecrypt( AsymmetricDecryptRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof AsymmetricDecryptResponse) { requests.add(request); responseObserver.onNext(((AsymmetricDecryptResponse) response)); @@ -473,7 +473,7 @@ public void asymmetricDecrypt( new IllegalArgumentException( String.format( "Unrecognized response type %s for method AsymmetricDecrypt, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), AsymmetricDecryptResponse.class.getName(), Exception.class.getName()))); } @@ -482,7 +482,7 @@ public void asymmetricDecrypt( @Override public void updateCryptoKeyPrimaryVersion( UpdateCryptoKeyPrimaryVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKey) { requests.add(request); responseObserver.onNext(((CryptoKey) response)); @@ -494,7 +494,7 @@ public void updateCryptoKeyPrimaryVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateCryptoKeyPrimaryVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKey.class.getName(), Exception.class.getName()))); } @@ -503,7 +503,7 @@ public void updateCryptoKeyPrimaryVersion( @Override public void destroyCryptoKeyVersion( DestroyCryptoKeyVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKeyVersion) { requests.add(request); responseObserver.onNext(((CryptoKeyVersion) response)); @@ -515,7 +515,7 @@ public void destroyCryptoKeyVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method DestroyCryptoKeyVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKeyVersion.class.getName(), Exception.class.getName()))); } @@ -524,7 +524,7 @@ public void destroyCryptoKeyVersion( @Override public void restoreCryptoKeyVersion( RestoreCryptoKeyVersionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CryptoKeyVersion) { requests.add(request); responseObserver.onNext(((CryptoKeyVersion) response)); @@ -536,7 +536,7 @@ public void restoreCryptoKeyVersion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method RestoreCryptoKeyVersion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CryptoKeyVersion.class.getName(), Exception.class.getName()))); } @@ -544,7 +544,7 @@ public void restoreCryptoKeyVersion( @Override public void getIamPolicy(GetIamPolicyRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Policy) { requests.add(request); responseObserver.onNext(((Policy) response)); @@ -556,7 +556,7 @@ public void getIamPolicy(GetIamPolicyRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetIamPolicy, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Policy.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/kms/MockLocationsImpl.java b/test/integration/goldens/kms/MockLocationsImpl.java index d2c5e0f8ab..a510c09831 100644 --- a/test/integration/goldens/kms/MockLocationsImpl.java +++ b/test/integration/goldens/kms/MockLocationsImpl.java @@ -61,7 +61,7 @@ public void reset() { @Override public void listLocations( ListLocationsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListLocationsResponse) { requests.add(request); responseObserver.onNext(((ListLocationsResponse) response)); @@ -73,7 +73,7 @@ public void listLocations( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListLocations, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListLocationsResponse.class.getName(), Exception.class.getName()))); } @@ -81,7 +81,7 @@ public void listLocations( @Override public void getLocation(GetLocationRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Location) { requests.add(request); responseObserver.onNext(((Location) response)); @@ -93,7 +93,7 @@ public void getLocation(GetLocationRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetLocation, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Location.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/library/MockLibraryServiceImpl.java b/test/integration/goldens/library/MockLibraryServiceImpl.java index f16b5f2924..e25f089399 100644 --- a/test/integration/goldens/library/MockLibraryServiceImpl.java +++ b/test/integration/goldens/library/MockLibraryServiceImpl.java @@ -76,7 +76,7 @@ public void reset() { @Override public void createShelf(CreateShelfRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Shelf) { requests.add(request); responseObserver.onNext(((Shelf) response)); @@ -88,7 +88,7 @@ public void createShelf(CreateShelfRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateShelf, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Shelf.class.getName(), Exception.class.getName()))); } @@ -96,7 +96,7 @@ public void createShelf(CreateShelfRequest request, StreamObserver respon @Override public void getShelf(GetShelfRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Shelf) { requests.add(request); responseObserver.onNext(((Shelf) response)); @@ -108,7 +108,7 @@ public void getShelf(GetShelfRequest request, StreamObserver responseObse new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetShelf, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Shelf.class.getName(), Exception.class.getName()))); } @@ -117,7 +117,7 @@ public void getShelf(GetShelfRequest request, StreamObserver responseObse @Override public void listShelves( ListShelvesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListShelvesResponse) { requests.add(request); responseObserver.onNext(((ListShelvesResponse) response)); @@ -129,7 +129,7 @@ public void listShelves( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListShelves, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListShelvesResponse.class.getName(), Exception.class.getName()))); } @@ -137,7 +137,7 @@ public void listShelves( @Override public void deleteShelf(DeleteShelfRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -149,7 +149,7 @@ public void deleteShelf(DeleteShelfRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteShelf, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -157,7 +157,7 @@ public void deleteShelf(DeleteShelfRequest request, StreamObserver respon @Override public void mergeShelves(MergeShelvesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Shelf) { requests.add(request); responseObserver.onNext(((Shelf) response)); @@ -169,7 +169,7 @@ public void mergeShelves(MergeShelvesRequest request, StreamObserver resp new IllegalArgumentException( String.format( "Unrecognized response type %s for method MergeShelves, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Shelf.class.getName(), Exception.class.getName()))); } @@ -177,7 +177,7 @@ public void mergeShelves(MergeShelvesRequest request, StreamObserver resp @Override public void createBook(CreateBookRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Book) { requests.add(request); responseObserver.onNext(((Book) response)); @@ -189,13 +189,15 @@ public void createBook(CreateBookRequest request, StreamObserver responseO new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateBook, expected %s or %s", - response.getClass().getName(), Book.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Book.class.getName(), + Exception.class.getName()))); } } @Override public void getBook(GetBookRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Book) { requests.add(request); responseObserver.onNext(((Book) response)); @@ -207,14 +209,16 @@ public void getBook(GetBookRequest request, StreamObserver responseObserve new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetBook, expected %s or %s", - response.getClass().getName(), Book.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Book.class.getName(), + Exception.class.getName()))); } } @Override public void listBooks( ListBooksRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListBooksResponse) { requests.add(request); responseObserver.onNext(((ListBooksResponse) response)); @@ -226,7 +230,7 @@ public void listBooks( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListBooks, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListBooksResponse.class.getName(), Exception.class.getName()))); } @@ -234,7 +238,7 @@ public void listBooks( @Override public void deleteBook(DeleteBookRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -246,7 +250,7 @@ public void deleteBook(DeleteBookRequest request, StreamObserver response new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteBook, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -254,7 +258,7 @@ public void deleteBook(DeleteBookRequest request, StreamObserver response @Override public void updateBook(UpdateBookRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Book) { requests.add(request); responseObserver.onNext(((Book) response)); @@ -266,13 +270,15 @@ public void updateBook(UpdateBookRequest request, StreamObserver responseO new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateBook, expected %s or %s", - response.getClass().getName(), Book.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Book.class.getName(), + Exception.class.getName()))); } } @Override public void moveBook(MoveBookRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Book) { requests.add(request); responseObserver.onNext(((Book) response)); @@ -284,7 +290,9 @@ public void moveBook(MoveBookRequest request, StreamObserver responseObser new IllegalArgumentException( String.format( "Unrecognized response type %s for method MoveBook, expected %s or %s", - response.getClass().getName(), Book.class.getName(), Exception.class.getName()))); + response == null ? "null" : response.getClass().getName(), + Book.class.getName(), + Exception.class.getName()))); } } } diff --git a/test/integration/goldens/logging/MockConfigServiceV2Impl.java b/test/integration/goldens/logging/MockConfigServiceV2Impl.java index 345c4ff03a..406467a56b 100644 --- a/test/integration/goldens/logging/MockConfigServiceV2Impl.java +++ b/test/integration/goldens/logging/MockConfigServiceV2Impl.java @@ -94,7 +94,7 @@ public void reset() { @Override public void listBuckets( ListBucketsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListBucketsResponse) { requests.add(request); responseObserver.onNext(((ListBucketsResponse) response)); @@ -106,7 +106,7 @@ public void listBuckets( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListBuckets, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListBucketsResponse.class.getName(), Exception.class.getName()))); } @@ -114,7 +114,7 @@ public void listBuckets( @Override public void getBucket(GetBucketRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogBucket) { requests.add(request); responseObserver.onNext(((LogBucket) response)); @@ -126,7 +126,7 @@ public void getBucket(GetBucketRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetBucket, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogBucket.class.getName(), Exception.class.getName()))); } @@ -135,7 +135,7 @@ public void getBucket(GetBucketRequest request, StreamObserver respon @Override public void createBucket( CreateBucketRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogBucket) { requests.add(request); responseObserver.onNext(((LogBucket) response)); @@ -147,7 +147,7 @@ public void createBucket( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateBucket, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogBucket.class.getName(), Exception.class.getName()))); } @@ -156,7 +156,7 @@ public void createBucket( @Override public void updateBucket( UpdateBucketRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogBucket) { requests.add(request); responseObserver.onNext(((LogBucket) response)); @@ -168,7 +168,7 @@ public void updateBucket( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateBucket, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogBucket.class.getName(), Exception.class.getName()))); } @@ -176,7 +176,7 @@ public void updateBucket( @Override public void deleteBucket(DeleteBucketRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -188,7 +188,7 @@ public void deleteBucket(DeleteBucketRequest request, StreamObserver resp new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteBucket, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -197,7 +197,7 @@ public void deleteBucket(DeleteBucketRequest request, StreamObserver resp @Override public void undeleteBucket( UndeleteBucketRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -209,7 +209,7 @@ public void undeleteBucket( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UndeleteBucket, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -218,7 +218,7 @@ public void undeleteBucket( @Override public void listViews( ListViewsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListViewsResponse) { requests.add(request); responseObserver.onNext(((ListViewsResponse) response)); @@ -230,7 +230,7 @@ public void listViews( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListViews, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListViewsResponse.class.getName(), Exception.class.getName()))); } @@ -238,7 +238,7 @@ public void listViews( @Override public void getView(GetViewRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogView) { requests.add(request); responseObserver.onNext(((LogView) response)); @@ -250,7 +250,7 @@ public void getView(GetViewRequest request, StreamObserver responseObse new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetView, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogView.class.getName(), Exception.class.getName()))); } @@ -258,7 +258,7 @@ public void getView(GetViewRequest request, StreamObserver responseObse @Override public void createView(CreateViewRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogView) { requests.add(request); responseObserver.onNext(((LogView) response)); @@ -270,7 +270,7 @@ public void createView(CreateViewRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateView, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogView.class.getName(), Exception.class.getName()))); } @@ -278,7 +278,7 @@ public void createView(CreateViewRequest request, StreamObserver respon @Override public void updateView(UpdateViewRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogView) { requests.add(request); responseObserver.onNext(((LogView) response)); @@ -290,7 +290,7 @@ public void updateView(UpdateViewRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateView, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogView.class.getName(), Exception.class.getName()))); } @@ -298,7 +298,7 @@ public void updateView(UpdateViewRequest request, StreamObserver respon @Override public void deleteView(DeleteViewRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -310,7 +310,7 @@ public void deleteView(DeleteViewRequest request, StreamObserver response new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteView, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -319,7 +319,7 @@ public void deleteView(DeleteViewRequest request, StreamObserver response @Override public void listSinks( ListSinksRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListSinksResponse) { requests.add(request); responseObserver.onNext(((ListSinksResponse) response)); @@ -331,7 +331,7 @@ public void listSinks( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListSinks, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListSinksResponse.class.getName(), Exception.class.getName()))); } @@ -339,7 +339,7 @@ public void listSinks( @Override public void getSink(GetSinkRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogSink) { requests.add(request); responseObserver.onNext(((LogSink) response)); @@ -351,7 +351,7 @@ public void getSink(GetSinkRequest request, StreamObserver responseObse new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetSink, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogSink.class.getName(), Exception.class.getName()))); } @@ -359,7 +359,7 @@ public void getSink(GetSinkRequest request, StreamObserver responseObse @Override public void createSink(CreateSinkRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogSink) { requests.add(request); responseObserver.onNext(((LogSink) response)); @@ -371,7 +371,7 @@ public void createSink(CreateSinkRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateSink, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogSink.class.getName(), Exception.class.getName()))); } @@ -379,7 +379,7 @@ public void createSink(CreateSinkRequest request, StreamObserver respon @Override public void updateSink(UpdateSinkRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogSink) { requests.add(request); responseObserver.onNext(((LogSink) response)); @@ -391,7 +391,7 @@ public void updateSink(UpdateSinkRequest request, StreamObserver respon new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateSink, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogSink.class.getName(), Exception.class.getName()))); } @@ -399,7 +399,7 @@ public void updateSink(UpdateSinkRequest request, StreamObserver respon @Override public void deleteSink(DeleteSinkRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -411,7 +411,7 @@ public void deleteSink(DeleteSinkRequest request, StreamObserver response new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteSink, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -420,7 +420,7 @@ public void deleteSink(DeleteSinkRequest request, StreamObserver response @Override public void listExclusions( ListExclusionsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListExclusionsResponse) { requests.add(request); responseObserver.onNext(((ListExclusionsResponse) response)); @@ -432,7 +432,7 @@ public void listExclusions( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListExclusions, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListExclusionsResponse.class.getName(), Exception.class.getName()))); } @@ -441,7 +441,7 @@ public void listExclusions( @Override public void getExclusion( GetExclusionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogExclusion) { requests.add(request); responseObserver.onNext(((LogExclusion) response)); @@ -453,7 +453,7 @@ public void getExclusion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetExclusion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogExclusion.class.getName(), Exception.class.getName()))); } @@ -462,7 +462,7 @@ public void getExclusion( @Override public void createExclusion( CreateExclusionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogExclusion) { requests.add(request); responseObserver.onNext(((LogExclusion) response)); @@ -474,7 +474,7 @@ public void createExclusion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateExclusion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogExclusion.class.getName(), Exception.class.getName()))); } @@ -483,7 +483,7 @@ public void createExclusion( @Override public void updateExclusion( UpdateExclusionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogExclusion) { requests.add(request); responseObserver.onNext(((LogExclusion) response)); @@ -495,7 +495,7 @@ public void updateExclusion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateExclusion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogExclusion.class.getName(), Exception.class.getName()))); } @@ -504,7 +504,7 @@ public void updateExclusion( @Override public void deleteExclusion( DeleteExclusionRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -516,7 +516,7 @@ public void deleteExclusion( new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteExclusion, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -525,7 +525,7 @@ public void deleteExclusion( @Override public void getCmekSettings( GetCmekSettingsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CmekSettings) { requests.add(request); responseObserver.onNext(((CmekSettings) response)); @@ -537,7 +537,7 @@ public void getCmekSettings( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetCmekSettings, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CmekSettings.class.getName(), Exception.class.getName()))); } @@ -546,7 +546,7 @@ public void getCmekSettings( @Override public void updateCmekSettings( UpdateCmekSettingsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof CmekSettings) { requests.add(request); responseObserver.onNext(((CmekSettings) response)); @@ -558,7 +558,7 @@ public void updateCmekSettings( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateCmekSettings, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), CmekSettings.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/logging/MockLoggingServiceV2Impl.java b/test/integration/goldens/logging/MockLoggingServiceV2Impl.java index 6a3a330981..e98eccb923 100644 --- a/test/integration/goldens/logging/MockLoggingServiceV2Impl.java +++ b/test/integration/goldens/logging/MockLoggingServiceV2Impl.java @@ -72,7 +72,7 @@ public void reset() { @Override public void deleteLog(DeleteLogRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -84,7 +84,7 @@ public void deleteLog(DeleteLogRequest request, StreamObserver responseOb new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteLog, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } @@ -93,7 +93,7 @@ public void deleteLog(DeleteLogRequest request, StreamObserver responseOb @Override public void writeLogEntries( WriteLogEntriesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof WriteLogEntriesResponse) { requests.add(request); responseObserver.onNext(((WriteLogEntriesResponse) response)); @@ -105,7 +105,7 @@ public void writeLogEntries( new IllegalArgumentException( String.format( "Unrecognized response type %s for method WriteLogEntries, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), WriteLogEntriesResponse.class.getName(), Exception.class.getName()))); } @@ -114,7 +114,7 @@ public void writeLogEntries( @Override public void listLogEntries( ListLogEntriesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListLogEntriesResponse) { requests.add(request); responseObserver.onNext(((ListLogEntriesResponse) response)); @@ -126,7 +126,7 @@ public void listLogEntries( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListLogEntries, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListLogEntriesResponse.class.getName(), Exception.class.getName()))); } @@ -136,7 +136,7 @@ public void listLogEntries( public void listMonitoredResourceDescriptors( ListMonitoredResourceDescriptorsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListMonitoredResourceDescriptorsResponse) { requests.add(request); responseObserver.onNext(((ListMonitoredResourceDescriptorsResponse) response)); @@ -148,7 +148,7 @@ public void listMonitoredResourceDescriptors( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListMonitoredResourceDescriptors, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListMonitoredResourceDescriptorsResponse.class.getName(), Exception.class.getName()))); } @@ -156,7 +156,7 @@ public void listMonitoredResourceDescriptors( @Override public void listLogs(ListLogsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListLogsResponse) { requests.add(request); responseObserver.onNext(((ListLogsResponse) response)); @@ -168,7 +168,7 @@ public void listLogs(ListLogsRequest request, StreamObserver r new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListLogs, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListLogsResponse.class.getName(), Exception.class.getName()))); } @@ -192,7 +192,7 @@ public void onNext(TailLogEntriesRequest value) { new IllegalArgumentException( String.format( "Unrecognized response type %s for method TailLogEntries, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), TailLogEntriesResponse.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/logging/MockMetricsServiceV2Impl.java b/test/integration/goldens/logging/MockMetricsServiceV2Impl.java index 9cc5f79627..716d447707 100644 --- a/test/integration/goldens/logging/MockMetricsServiceV2Impl.java +++ b/test/integration/goldens/logging/MockMetricsServiceV2Impl.java @@ -69,7 +69,7 @@ public void reset() { @Override public void listLogMetrics( ListLogMetricsRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListLogMetricsResponse) { requests.add(request); responseObserver.onNext(((ListLogMetricsResponse) response)); @@ -81,7 +81,7 @@ public void listLogMetrics( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListLogMetrics, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListLogMetricsResponse.class.getName(), Exception.class.getName()))); } @@ -90,7 +90,7 @@ public void listLogMetrics( @Override public void getLogMetric( GetLogMetricRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogMetric) { requests.add(request); responseObserver.onNext(((LogMetric) response)); @@ -102,7 +102,7 @@ public void getLogMetric( new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetLogMetric, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogMetric.class.getName(), Exception.class.getName()))); } @@ -111,7 +111,7 @@ public void getLogMetric( @Override public void createLogMetric( CreateLogMetricRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogMetric) { requests.add(request); responseObserver.onNext(((LogMetric) response)); @@ -123,7 +123,7 @@ public void createLogMetric( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateLogMetric, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogMetric.class.getName(), Exception.class.getName()))); } @@ -132,7 +132,7 @@ public void createLogMetric( @Override public void updateLogMetric( UpdateLogMetricRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof LogMetric) { requests.add(request); responseObserver.onNext(((LogMetric) response)); @@ -144,7 +144,7 @@ public void updateLogMetric( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateLogMetric, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), LogMetric.class.getName(), Exception.class.getName()))); } @@ -153,7 +153,7 @@ public void updateLogMetric( @Override public void deleteLogMetric( DeleteLogMetricRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Empty) { requests.add(request); responseObserver.onNext(((Empty) response)); @@ -165,7 +165,7 @@ public void deleteLogMetric( new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteLogMetric, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Empty.class.getName(), Exception.class.getName()))); } diff --git a/test/integration/goldens/redis/MockCloudRedisImpl.java b/test/integration/goldens/redis/MockCloudRedisImpl.java index 8cce05da5e..9c628feb81 100644 --- a/test/integration/goldens/redis/MockCloudRedisImpl.java +++ b/test/integration/goldens/redis/MockCloudRedisImpl.java @@ -62,7 +62,7 @@ public void reset() { @Override public void listInstances( ListInstancesRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof ListInstancesResponse) { requests.add(request); responseObserver.onNext(((ListInstancesResponse) response)); @@ -74,7 +74,7 @@ public void listInstances( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ListInstances, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), ListInstancesResponse.class.getName(), Exception.class.getName()))); } @@ -82,7 +82,7 @@ public void listInstances( @Override public void getInstance(GetInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Instance) { requests.add(request); responseObserver.onNext(((Instance) response)); @@ -94,7 +94,7 @@ public void getInstance(GetInstanceRequest request, StreamObserver res new IllegalArgumentException( String.format( "Unrecognized response type %s for method GetInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Instance.class.getName(), Exception.class.getName()))); } @@ -103,7 +103,7 @@ public void getInstance(GetInstanceRequest request, StreamObserver res @Override public void createInstance( CreateInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -115,7 +115,7 @@ public void createInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method CreateInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -124,7 +124,7 @@ public void createInstance( @Override public void updateInstance( UpdateInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -136,7 +136,7 @@ public void updateInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpdateInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -145,7 +145,7 @@ public void updateInstance( @Override public void upgradeInstance( UpgradeInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -157,7 +157,7 @@ public void upgradeInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method UpgradeInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -166,7 +166,7 @@ public void upgradeInstance( @Override public void importInstance( ImportInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -178,7 +178,7 @@ public void importInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ImportInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -187,7 +187,7 @@ public void importInstance( @Override public void exportInstance( ExportInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -199,7 +199,7 @@ public void exportInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method ExportInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -208,7 +208,7 @@ public void exportInstance( @Override public void failoverInstance( FailoverInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -220,7 +220,7 @@ public void failoverInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method FailoverInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); } @@ -229,7 +229,7 @@ public void failoverInstance( @Override public void deleteInstance( DeleteInstanceRequest request, StreamObserver responseObserver) { - Object response = responses.remove(); + Object response = responses.poll(); if (response instanceof Operation) { requests.add(request); responseObserver.onNext(((Operation) response)); @@ -241,7 +241,7 @@ public void deleteInstance( new IllegalArgumentException( String.format( "Unrecognized response type %s for method DeleteInstance, expected %s or %s", - response.getClass().getName(), + response == null ? "null" : response.getClass().getName(), Operation.class.getName(), Exception.class.getName()))); }