Skip to content

Commit 05d9c9e

Browse files
xiaozhenliu-gg5summer-ji-eng
authored andcommitted
[ggj][infra][5/5] support goldens updates for composer tests (#348)
* add golden folder * format * move all expected strings to golden files * format * update goldens * update ast integration test * keep service client test * constant helper * format * format * support update goldens for ast integration test * support update goldens for omposer tests * fix * update * remove unneeded dependencies * remove unneeded dependencies
1 parent 7397f11 commit 05d9c9e

14 files changed

+79
-2
lines changed

BUILD.bazel

+16
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,15 @@ java_binary(
5353
srcs = [
5454
"//src/test/java/com/google/api/generator/gapic/dummy:dummy_files",
5555
"//src/test/java/com/google/api/generator/engine:engine_files",
56+
"//src/test/java/com/google/api/generator/gapic/composer:composer_files",
5657
"//src/test/java/com/google/api/generator/test/framework:framework_files",
5758
],
5859
data = [
5960
"//src/test/java/com/google/api/generator/gapic/dummy/goldens:goldens_files",
6061
"//src/test/java/com/google/api/generator/engine/goldens:goldens_files",
62+
"//src/test/java/com/google/api/generator/gapic/composer/goldens:goldens_files",
63+
"//src/test/java/com/google/api/generator/gapic/testdata:gapic_config_files",
64+
"//src/test/java/com/google/api/generator/gapic/testdata:service_config_files",
6165
],
6266
jvm_flags = ["-Xmx512m"],
6367
main_class = "com.google.api.generator.test.framework.SingleJUnitTestRunner",
@@ -67,7 +71,19 @@ java_binary(
6771
"//src/main/java/com/google/api/generator/engine/writer",
6872
"//src/test/java/com/google/api/generator/test/framework",
6973
"//src/main/java/com/google/api/generator/engine/lexicon",
74+
"//src/main/java/com/google/api/generator/gapic/composer",
75+
"//src/main/java/com/google/api/generator/gapic/model",
76+
"//src/main/java/com/google/api/generator/gapic/protoparser",
77+
"//src/test/java/com/google/api/generator/gapic/testdata:showcase_java_proto",
78+
"//src/test/java/com/google/api/generator/gapic/testdata:testgapic_java_proto",
79+
"//src/test/java/com/google/api/generator/gapic/composer:common_resources_java_proto",
7080
"@com_google_guava_guava//:com_google_guava_guava",
81+
"@com_google_api_gax_java//gax",
82+
"@com_google_googleapis//google/logging/v2:logging_java_proto",
83+
"@com_google_googleapis//google/pubsub/v1:pubsub_java_proto",
84+
"@com_google_googleapis//google/rpc:rpc_java_proto",
85+
"@com_google_protobuf//:protobuf_java",
86+
"//:service_config_java_proto",
7187
"@com_google_truth_truth//jar",
7288
"@io_github_java_diff_utils//jar",
7389
"@junit_junit//jar",

rules_bazel/java/java_diff_test.bzl

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ junit_output_zip = rule(
3939
),
4040
},
4141
outputs = {
42-
"output": "%{name}%.zip",
42+
"output": "%{name}.zip",
4343
},
4444
implementation = _junit_output_impl,
4545
)

src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel

+32
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
load("//:rules_bazel/java/java_diff_test.bzl", "golden_update")
2+
13
package(default_visibility = ["//visibility:public"])
24

35
TESTS = [
@@ -18,6 +20,19 @@ TESTS = [
1820
"ServiceStubClassComposerTest",
1921
]
2022

23+
UPDATE_GOLDENS_TESTS = [
24+
"BatchingDescriptorComposerTest",
25+
"ComposerTest",
26+
"GrpcServiceCallableFactoryClassComposerTest",
27+
"GrpcServiceStubClassComposerTest",
28+
"MockServiceClassComposerTest",
29+
"MockServiceImplClassComposerTest",
30+
"ResourceNameHelperClassComposerTest",
31+
"ServiceSettingsClassComposerTest",
32+
"ServiceStubSettingsClassComposerTest",
33+
"ServiceStubClassComposerTest",
34+
]
35+
2136
filegroup(
2237
name = "composer_files",
2338
srcs = glob(["*.java"]),
@@ -69,3 +84,20 @@ java_proto_library(
6984
"@junit_junit//jar",
7085
],
7186
) for test_name in TESTS]
87+
88+
89+
90+
TEST_CLASS_DIR = "com.google.api.generator.gapic.composer."
91+
# Run `bazel run src/test/java/com/google/api/generator/gapic/composer:testTargetName_update`
92+
# to update goldens as expected generated code.
93+
# `ServiceClient*` tests are not supported now since they are still in active development.
94+
95+
[golden_update(
96+
name = test_name + "_update",
97+
srcs = [
98+
":composer_files",
99+
"//src/test/java/com/google/api/generator/gapic/testdata:gapic_config_files",
100+
"//src/test/java/com/google/api/generator/gapic/testdata:service_config_files",
101+
],
102+
test_class_name = TEST_CLASS_DIR + test_name,
103+
) for test_name in UPDATE_GOLDENS_TESTS]

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

+7
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.google.api.generator.gapic.protoparser.Parser;
3030
import com.google.api.generator.gapic.protoparser.ServiceConfigParser;
3131
import com.google.api.generator.test.framework.Assert;
32+
import com.google.api.generator.test.framework.Utils;
3233
import com.google.logging.v2.LogEntryProto;
3334
import com.google.logging.v2.LoggingConfigProto;
3435
import com.google.logging.v2.LoggingMetricsProto;
@@ -99,6 +100,8 @@ public void batchingDescriptor_hasSubresponseField() {
99100
method, batchingSetting, messageTypes);
100101

101102
batchingDescriptorExpr.accept(writerVisitor);
103+
Utils.saveCodegenToFile(
104+
this.getClass(), "BatchingDescriptorComposerTestSubresponse.golden", writerVisitor.write());
102105
Path goldenFilePath =
103106
Paths.get(
104107
ComposerConstants.GOLDENFILES_DIRECTORY,
@@ -155,6 +158,10 @@ public void batchingDescriptor_noSubresponseField() {
155158
method, batchingSetting, messageTypes);
156159

157160
batchingDescriptorExpr.accept(writerVisitor);
161+
Utils.saveCodegenToFile(
162+
this.getClass(),
163+
"BatchingDescriptorComposerTestNoSubresponse.golden",
164+
writerVisitor.write());
158165
Path goldenFilePath =
159166
Paths.get(
160167
ComposerConstants.GOLDENFILES_DIRECTORY,

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

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.api.generator.gapic.model.GapicClass;
2121
import com.google.api.generator.gapic.model.GapicClass.Kind;
2222
import com.google.api.generator.test.framework.Assert;
23+
import com.google.api.generator.test.framework.Utils;
2324
import java.nio.file.Path;
2425
import java.nio.file.Paths;
2526
import java.util.Arrays;
@@ -39,6 +40,7 @@ public void gapicClass_addApacheLicense() {
3940
Composer.addApacheLicense(Arrays.asList(GapicClass.create(Kind.TEST, classDef)));
4041
JavaWriterVisitor visitor = new JavaWriterVisitor();
4142
gapicClassWithHeaderList.get(0).classDefinition().accept(visitor);
43+
Utils.saveCodegenToFile(this.getClass(), "ComposerTest.golden", visitor.write());
4244
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "ComposerTest.golden");
4345
Assert.assertCodeEquals(goldenFilePath, visitor.write());
4446
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.generator.gapic.model.Service;
2424
import com.google.api.generator.gapic.protoparser.Parser;
2525
import com.google.api.generator.test.framework.Assert;
26+
import com.google.api.generator.test.framework.Utils;
2627
import com.google.protobuf.Descriptors.FileDescriptor;
2728
import com.google.protobuf.Descriptors.ServiceDescriptor;
2829
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -60,6 +61,7 @@ public void generateServiceClasses() {
6061

6162
JavaWriterVisitor visitor = new JavaWriterVisitor();
6263
clazz.classDefinition().accept(visitor);
64+
Utils.saveCodegenToFile(this.getClass(), "GrpcEchoCallableFactory.golden", visitor.write());
6365
Path goldenFilePath =
6466
Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "GrpcEchoCallableFactory.golden");
6567
Assert.assertCodeEquals(goldenFilePath, visitor.write());

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

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.generator.gapic.model.Service;
2424
import com.google.api.generator.gapic.protoparser.Parser;
2525
import com.google.api.generator.test.framework.Assert;
26+
import com.google.api.generator.test.framework.Utils;
2627
import com.google.protobuf.Descriptors.FileDescriptor;
2728
import com.google.protobuf.Descriptors.ServiceDescriptor;
2829
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -59,6 +60,7 @@ public void generateServiceClasses() {
5960

6061
JavaWriterVisitor visitor = new JavaWriterVisitor();
6162
clazz.classDefinition().accept(visitor);
63+
Utils.saveCodegenToFile(this.getClass(), "GrpcEchoStub.golden", visitor.write());
6264
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "GrpcEchoStub.golden");
6365
Assert.assertCodeEquals(goldenFilePath, visitor.write());
6466
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.generator.gapic.model.Service;
2424
import com.google.api.generator.gapic.protoparser.Parser;
2525
import com.google.api.generator.test.framework.Assert;
26+
import com.google.api.generator.test.framework.Utils;
2627
import com.google.protobuf.Descriptors.FileDescriptor;
2728
import com.google.protobuf.Descriptors.ServiceDescriptor;
2829
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -59,6 +60,7 @@ public void generateServiceClasses() {
5960

6061
JavaWriterVisitor visitor = new JavaWriterVisitor();
6162
clazz.classDefinition().accept(visitor);
63+
Utils.saveCodegenToFile(this.getClass(), "MockEcho.golden", visitor.write());
6264
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "MockEcho.golden");
6365
Assert.assertCodeEquals(goldenFilePath, visitor.write());
6466
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.generator.gapic.model.Service;
2424
import com.google.api.generator.gapic.protoparser.Parser;
2525
import com.google.api.generator.test.framework.Assert;
26+
import com.google.api.generator.test.framework.Utils;
2627
import com.google.protobuf.Descriptors.FileDescriptor;
2728
import com.google.protobuf.Descriptors.ServiceDescriptor;
2829
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -60,6 +61,7 @@ public void generateServiceClasses() {
6061

6162
JavaWriterVisitor visitor = new JavaWriterVisitor();
6263
clazz.classDefinition().accept(visitor);
64+
Utils.saveCodegenToFile(this.getClass(), "MockEchoImpl.golden", visitor.write());
6365
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "MockEchoImpl.golden");
6466
Assert.assertCodeEquals(goldenFilePath, visitor.write());
6567
}

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

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import com.google.api.generator.gapic.model.Service;
2525
import com.google.api.generator.gapic.protoparser.Parser;
2626
import com.google.api.generator.test.framework.Assert;
27+
import com.google.api.generator.test.framework.Utils;
2728
import com.google.protobuf.Descriptors.FileDescriptor;
2829
import com.google.protobuf.Descriptors.ServiceDescriptor;
2930
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -97,6 +98,7 @@ public void generateResourceNameClass_echoFoobarMultiplePatterns() {
9798

9899
JavaWriterVisitor visitor = new JavaWriterVisitor();
99100
clazz.classDefinition().accept(visitor);
101+
Utils.saveCodegenToFile(this.getClass(), "FoobarName.golden", visitor.write());
100102
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "FoobarName.golden");
101103
Assert.assertCodeEquals(goldenFilePath, visitor.write());
102104
}
@@ -122,6 +124,7 @@ public void generateResourceNameClass_testingSessionOnePattern() {
122124

123125
JavaWriterVisitor visitor = new JavaWriterVisitor();
124126
clazz.classDefinition().accept(visitor);
127+
Utils.saveCodegenToFile(this.getClass(), "SessionName.golden", visitor.write());
125128
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "SessionName.golden");
126129
Assert.assertCodeEquals(goldenFilePath, visitor.write());
127130
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.generator.gapic.model.Service;
2424
import com.google.api.generator.gapic.protoparser.Parser;
2525
import com.google.api.generator.test.framework.Assert;
26+
import com.google.api.generator.test.framework.Utils;
2627
import com.google.protobuf.Descriptors.FileDescriptor;
2728
import com.google.protobuf.Descriptors.ServiceDescriptor;
2829
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -60,6 +61,7 @@ public void generateServiceClasses() {
6061

6162
JavaWriterVisitor visitor = new JavaWriterVisitor();
6263
clazz.classDefinition().accept(visitor);
64+
Utils.saveCodegenToFile(this.getClass(), "EchoSettings.golden", visitor.write());
6365
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "EchoSettings.golden");
6466
Assert.assertCodeEquals(goldenFilePath, visitor.write());
6567
}

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

+2
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.google.api.generator.gapic.model.Service;
2424
import com.google.api.generator.gapic.protoparser.Parser;
2525
import com.google.api.generator.test.framework.Assert;
26+
import com.google.api.generator.test.framework.Utils;
2627
import com.google.protobuf.Descriptors.FileDescriptor;
2728
import com.google.protobuf.Descriptors.ServiceDescriptor;
2829
import com.google.showcase.v1beta1.EchoOuterClass;
@@ -59,6 +60,7 @@ public void generateServiceClasses() {
5960

6061
JavaWriterVisitor visitor = new JavaWriterVisitor();
6162
clazz.classDefinition().accept(visitor);
63+
Utils.saveCodegenToFile(this.getClass(), "EchoStub.golden", visitor.write());
6264
Path goldenFilePath = Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "EchoStub.golden");
6365
Assert.assertCodeEquals(goldenFilePath, visitor.write());
6466
}

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

+5
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.google.api.generator.gapic.protoparser.Parser;
2929
import com.google.api.generator.gapic.protoparser.ServiceConfigParser;
3030
import com.google.api.generator.test.framework.Assert;
31+
import com.google.api.generator.test.framework.Utils;
3132
import com.google.logging.v2.LogEntryProto;
3233
import com.google.logging.v2.LoggingConfigProto;
3334
import com.google.logging.v2.LoggingMetricsProto;
@@ -93,6 +94,8 @@ public void generateServiceStubSettingsClasses_batchingWithEmptyResponses() thro
9394

9495
JavaWriterVisitor visitor = new JavaWriterVisitor();
9596
clazz.classDefinition().accept(visitor);
97+
Utils.saveCodegenToFile(
98+
this.getClass(), "LoggingServiceV2StubSettings.golden", visitor.write());
9699
Path goldenFilePath =
97100
Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "LoggingServiceV2StubSettings.golden");
98101
Assert.assertCodeEquals(goldenFilePath, visitor.write());
@@ -135,6 +138,7 @@ public void generateServiceStubSettingsClasses_batchingWithNonemptyResponses()
135138

136139
JavaWriterVisitor visitor = new JavaWriterVisitor();
137140
clazz.classDefinition().accept(visitor);
141+
Utils.saveCodegenToFile(this.getClass(), "PublisherStubSettings.golden", visitor.write());
138142
Path goldenFilePath =
139143
Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "PublisherStubSettings.golden");
140144
Assert.assertCodeEquals(goldenFilePath, visitor.write());
@@ -165,6 +169,7 @@ public void generateServiceStubSettingsClasses_basic() throws IOException {
165169

166170
JavaWriterVisitor visitor = new JavaWriterVisitor();
167171
clazz.classDefinition().accept(visitor);
172+
Utils.saveCodegenToFile(this.getClass(), "EchoStubSettings.golden", visitor.write());
168173
Path goldenFilePath =
169174
Paths.get(ComposerConstants.GOLDENFILES_DIRECTORY, "EchoStubSettings.golden");
170175
Assert.assertCodeEquals(goldenFilePath, visitor.write());

src/test/java/com/google/api/generator/gapic/composer/goldens/BatchingDescriptorComposerTestSubresponse.golden

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@ public long countBytes(PublishRequest request) {
5656
return request.getSerializedSize();
5757
}
5858

59-
}
59+
}

0 commit comments

Comments
 (0)