Skip to content

Commit 83a3af9

Browse files
authored
[ggj][codegen] feat: add GrpcPublisherStub test to exercise HTTP subfields (#403)
* fix: refactor requestBuilder into separate method in ServiceClientClassComposer * feat: add varargs to AnonClass and ref setter methods * feat: add HTTP annotation parsing/validation * feat: Generate RequestParamsExtractor in GrpcServiceStub * feat: add GrpcPublisherStub test to exercise HTTP subfields
1 parent afacc17 commit 83a3af9

File tree

2 files changed

+470
-0
lines changed

2 files changed

+470
-0
lines changed

src/test/java/com/google/api/generator/gapic/composer/GrpcServiceStubClassComposerTest.java

+32
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,13 @@
2626
import com.google.api.generator.test.framework.Utils;
2727
import com.google.protobuf.Descriptors.FileDescriptor;
2828
import com.google.protobuf.Descriptors.ServiceDescriptor;
29+
import com.google.pubsub.v1.PubsubProto;
2930
import com.google.showcase.v1beta1.EchoOuterClass;
3031
import com.google.showcase.v1beta1.TestingOuterClass;
32+
import google.cloud.CommonResources;
3133
import java.nio.file.Path;
3234
import java.nio.file.Paths;
35+
import java.util.HashMap;
3336
import java.util.HashSet;
3437
import java.util.List;
3538
import java.util.Map;
@@ -82,4 +85,33 @@ public void generateGrpcServiceStubClass_httpBindings() {
8285
Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "GrpcTestingStub.golden");
8386
Assert.assertCodeEquals(goldenFilePath, visitor.write());
8487
}
88+
89+
@Test
90+
public void generateGrpcServiceStubClass_httpBindingsWithSubMessageFields() {
91+
FileDescriptor serviceFileDescriptor = PubsubProto.getDescriptor();
92+
FileDescriptor commonResourcesFileDescriptor = CommonResources.getDescriptor();
93+
ServiceDescriptor serviceDescriptor = serviceFileDescriptor.getServices().get(0);
94+
assertEquals("Publisher", serviceDescriptor.getName());
95+
96+
Map<String, ResourceName> resourceNames = new HashMap<>();
97+
resourceNames.putAll(Parser.parseResourceNames(serviceFileDescriptor));
98+
resourceNames.putAll(Parser.parseResourceNames(commonResourcesFileDescriptor));
99+
100+
Map<String, Message> messageTypes = Parser.parseMessages(serviceFileDescriptor);
101+
102+
Set<ResourceName> outputResourceNames = new HashSet<>();
103+
List<Service> services =
104+
Parser.parseService(
105+
serviceFileDescriptor, messageTypes, resourceNames, outputResourceNames);
106+
107+
Service service = services.get(0);
108+
GapicClass clazz = GrpcServiceStubClassComposer.instance().generate(service, messageTypes);
109+
110+
JavaWriterVisitor visitor = new JavaWriterVisitor();
111+
clazz.classDefinition().accept(visitor);
112+
Utils.saveCodegenToFile(this.getClass(), "GrpcPublisherStub.golden", visitor.write());
113+
Path goldenFilePath =
114+
Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "GrpcPublisherStub.golden");
115+
Assert.assertCodeEquals(goldenFilePath, visitor.write());
116+
}
85117
}

0 commit comments

Comments
 (0)