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

Lines changed: 32 additions & 0 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy