Skip to content

Commit

Permalink
fix: User parent type instead of child_type in method doc sample
Browse files Browse the repository at this point in the history
Fixes: #852.
  • Loading branch information
meltsufin committed Oct 20, 2021
1 parent 6bc4417 commit 3389f74
Show file tree
Hide file tree
Showing 10 changed files with 586 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,17 @@ private static Map<TypeNode, Field> parseTypeFromArgumentName(
resourceNames,
patternsToResourceNames);
outputArgResourceNames.addAll(resourceNameArgs);
typeToField.put(TypeNode.STRING, field);
if (resourceNameArgs.size() == 1) {
typeToField.put(
TypeNode.STRING,
field
.toBuilder()
.setResourceReference(
ResourceReference.withType(resourceNameArgs.get(0).resourceTypeString()))
.build());
} else {
typeToField.put(TypeNode.STRING, field);
}
typeToField.putAll(
resourceNameArgs.stream()
.collect(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
import com.google.api.generator.gapic.protoparser.Parser;
import com.google.api.generator.gapic.protoparser.ServiceConfigParser;
import com.google.bookshop.v1beta1.BookshopProto;
import com.google.cloud.datastream.v1alpha1.CloudDatastreamServiceProto;
import com.google.logging.v2.LogEntryProto;
import com.google.logging.v2.LoggingConfigProto;
import com.google.logging.v2.LoggingMetricsProto;
Expand Down Expand Up @@ -170,6 +171,27 @@ public GapicContext parseShowcaseIdentity() {
.build();
}

public GapicContext parseDatastream() {
FileDescriptor fileDescriptor = CloudDatastreamServiceProto.getDescriptor();
ServiceDescriptor datastreamService = fileDescriptor.getServices().get(0);
assertEquals(datastreamService.getName(), "Datastream");

Map<String, Message> messageTypes = Parser.parseMessages(fileDescriptor);
Map<String, ResourceName> resourceNames = Parser.parseResourceNames(fileDescriptor);
Set<ResourceName> outputResourceNames = new HashSet<>();
List<Service> services =
Parser.parseService(
fileDescriptor, messageTypes, resourceNames, Optional.empty(), outputResourceNames);

return GapicContext.builder()
.setMessages(messageTypes)
.setResourceNames(resourceNames)
.setServices(services)
.setHelperResourceNames(outputResourceNames)
.setTransport(transport)
.build();
}

public GapicContext parseShowcaseTesting() {
FileDescriptor testingFileDescriptor = TestingOuterClass.getDescriptor();
ServiceDescriptor testingService = testingFileDescriptor.getServices().get(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,4 +78,17 @@ public void generateServiceClasses_bookshopNameConflicts() {
Path goldenFilePath = Paths.get(Utils.getGoldenDir(this.getClass()), "BookshopClient.golden");
assertCodeEquals(goldenFilePath, visitor.write());
}

@Test
public void generateServiceClasses_childTypeParentInJavadoc() {
GapicContext context = GrpcTestProtoLoader.instance().parseDatastream();
Service protoService = context.services().get(0);
GapicClass clazz = ServiceClientClassComposer.instance().generate(context, protoService);

JavaWriterVisitor visitor = new JavaWriterVisitor();
clazz.classDefinition().accept(visitor);
Utils.saveCodegenToFile(this.getClass(), "DatastreamClient.golden", visitor.write());
Path goldenFilePath = Paths.get(Utils.getGoldenDir(this.getClass()), "DatastreamClient.golden");
assertCodeEquals(goldenFilePath, visitor.write());
}
}

0 comments on commit 3389f74

Please sign in to comment.