diff --git a/src/main/java/com/google/api/generator/engine/ast/BUILD.bazel b/src/main/java/com/google/api/generator/engine/ast/BUILD.bazel index 3a8ff41fcf..a51125d5d4 100644 --- a/src/main/java/com/google/api/generator/engine/ast/BUILD.bazel +++ b/src/main/java/com/google/api/generator/engine/ast/BUILD.bazel @@ -20,6 +20,7 @@ java_library( "@com_google_auto_value_auto_value_annotations//jar", "@com_google_code_findbugs_jsr305//jar", "@com_google_guava_guava//jar", + "@com_google_protobuf//:protobuf_java", "@javax_validation_javax_validation_api//jar", ], ) diff --git a/src/main/java/com/google/api/generator/engine/ast/TypeNode.java b/src/main/java/com/google/api/generator/engine/ast/TypeNode.java index 49fa35aaac..aef8f15727 100644 --- a/src/main/java/com/google/api/generator/engine/ast/TypeNode.java +++ b/src/main/java/com/google/api/generator/engine/ast/TypeNode.java @@ -17,6 +17,7 @@ import com.google.auto.value.AutoValue; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Preconditions; +import com.google.protobuf.ByteString; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -64,6 +65,9 @@ public enum TypeKind { public static final TypeNode SHORT_OBJECT = withReference(ConcreteReference.withClazz(Short.class)); + public static final TypeNode BYTESTRING = + TypeNode.withReference(ConcreteReference.withClazz(ByteString.class)); + private static final Map BOXED_TYPE_MAP = createBoxedTypeMap(); public static final TypeNode VOID = builder().setTypeKind(TypeKind.VOID).build(); @@ -187,7 +191,7 @@ public boolean isPrimitiveType() { } public boolean isProtoPrimitiveType() { - return isPrimitiveType() || this.equals(TypeNode.STRING); + return isPrimitiveType() || this.equals(TypeNode.STRING) || this.equals(TypeNode.BYTESTRING); } public boolean isSupertypeOrEquals(TypeNode other) { diff --git a/src/main/java/com/google/api/generator/gapic/composer/DefaultValueComposer.java b/src/main/java/com/google/api/generator/gapic/composer/DefaultValueComposer.java index fe4064ecee..1268cb7750 100644 --- a/src/main/java/com/google/api/generator/gapic/composer/DefaultValueComposer.java +++ b/src/main/java/com/google/api/generator/gapic/composer/DefaultValueComposer.java @@ -126,10 +126,10 @@ static Expr createDefaultValue(Field f) { PrimitiveValue.builder().setType(f.type()).setValue("true").build()); } - if (f.type().equals(BYTESTRING_TYPE)) { + if (f.type().equals(TypeNode.BYTESTRING)) { return VariableExpr.builder() - .setStaticReferenceType(BYTESTRING_TYPE) - .setVariable(Variable.builder().setName("EMPTY").setType(BYTESTRING_TYPE).build()) + .setStaticReferenceType(TypeNode.BYTESTRING) + .setVariable(Variable.builder().setName("EMPTY").setType(TypeNode.BYTESTRING).build()) .build(); } 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 91acd082bc..3c18458963 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 @@ -494,6 +494,7 @@ private static MethodDefinition createRpcTestMethod( "No repeated field found for paged method %s with output message type %s", method.name(), methodOutputMessage.name())); + // Must be a non-repeated type. repeatedResponseType = repeatedPagedResultsField.type(); responsesElementVarExpr = VariableExpr.withVariable( @@ -506,7 +507,7 @@ private static MethodDefinition createRpcTestMethod( Field.builder() .setType(repeatedResponseType) .setName("responsesElement") - .setIsMessage(true) + .setIsMessage(!repeatedResponseType.isProtoPrimitiveType()) .build())) .build()); } diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingClientTest.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingClientTest.golden index fb4ad5a543..044c5691fe 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingClientTest.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/LoggingClientTest.golden @@ -343,7 +343,7 @@ public class LoggingServiceV2ClientTest { @Test public void listLogsTest() throws Exception { - String responsesElement = String.newBuilder().build(); + String responsesElement = "responsesElement-318365110"; ListLogsResponse expectedResponse = ListLogsResponse.newBuilder() .setNextPageToken("") @@ -387,7 +387,7 @@ public class LoggingServiceV2ClientTest { @Test public void listLogsTest2() throws Exception { - String responsesElement = String.newBuilder().build(); + String responsesElement = "responsesElement-318365110"; ListLogsResponse expectedResponse = ListLogsResponse.newBuilder() .setNextPageToken("") @@ -431,7 +431,7 @@ public class LoggingServiceV2ClientTest { @Test public void listLogsTest3() throws Exception { - String responsesElement = String.newBuilder().build(); + String responsesElement = "responsesElement-318365110"; ListLogsResponse expectedResponse = ListLogsResponse.newBuilder() .setNextPageToken("") @@ -475,7 +475,7 @@ public class LoggingServiceV2ClientTest { @Test public void listLogsTest4() throws Exception { - String responsesElement = String.newBuilder().build(); + String responsesElement = "responsesElement-318365110"; ListLogsResponse expectedResponse = ListLogsResponse.newBuilder() .setNextPageToken("") @@ -519,7 +519,7 @@ public class LoggingServiceV2ClientTest { @Test public void listLogsTest5() throws Exception { - String responsesElement = String.newBuilder().build(); + String responsesElement = "responsesElement-318365110"; ListLogsResponse expectedResponse = ListLogsResponse.newBuilder() .setNextPageToken("")