From 7c4b6a71e3b79118ca40430fd82a98f119ebfbe6 Mon Sep 17 00:00:00 2001 From: xiaozhenliugg Date: Tue, 8 Sep 2020 18:24:14 -0700 Subject: [PATCH 1/3] add new dummy unit test --- .../api/generator/gapic/composer/BUILD.bazel | 1 + .../composer/FileDiffInfraDummyTest.java | 94 +++++++++++++++++++ .../gapic/composer/goldens/BUILD.bazel | 6 ++ ...leDiffInfraDummyTestClassWithHeader.golden | 19 ++++ .../FileDiffInfraDummyTestSimpleClass.golden | 4 + 5 files changed, 124 insertions(+) create mode 100644 src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java create mode 100644 src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel create mode 100644 src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestClassWithHeader.golden create mode 100644 src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden diff --git a/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel index 740ba1b5f2..89dd8025b8 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel +++ b/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel @@ -14,6 +14,7 @@ TESTS = [ "ServiceSettingsClassComposerTest", "ServiceStubSettingsClassComposerTest", "ServiceStubClassComposerTest", + "FileDiffInfraDummyTest", ] filegroup( diff --git a/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java b/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java new file mode 100644 index 0000000000..d1b8628b49 --- /dev/null +++ b/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java @@ -0,0 +1,94 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.google.api.generator.gapic.composer; + +import static junit.framework.Assert.assertEquals; + +import com.google.api.generator.engine.ast.ClassDefinition; +import com.google.api.generator.engine.ast.CommentStatement; +import com.google.api.generator.engine.ast.LineComment; +import com.google.api.generator.engine.ast.ScopeNode; +import com.google.api.generator.engine.writer.JavaWriterVisitor; +import com.google.api.generator.gapic.model.GapicClass; +import com.google.api.generator.gapic.model.GapicClass.Kind; +import java.util.Arrays; +import java.util.List; +import org.junit.Test; + +public class FileDiffInfraDummyTest { + // Add two simple tests for testing the file-diff infra. + // 1. The two unit tests create simple gapic classes since here is gapic/composer folder. + // 2. Two unit tests are created because we have the case of two expceted strings comparison + // in one test class e.g. ResourceNameHelperClassComposer. In that case, two golden files will be + // created. + // + // TODO(xiaozhenliu): remove this test class once the file-diff infra is in place and tested well. + @Test + public void simpleGapicClass() { + ClassDefinition classDef = + ClassDefinition.builder() + .setHeaderCommentStatements( + Arrays.asList( + CommentStatement.withComment( + LineComment.withComment("This is a test class for file-diff infra")))) + .setPackageString("com.google.showcase.v1beta1.stub") + .setName("EchoStubSettings") + .setScope(ScopeNode.PUBLIC) + .build(); + GapicClass gapicClass = GapicClass.create(Kind.TEST, classDef); + JavaWriterVisitor visitor = new JavaWriterVisitor(); + gapicClass.classDefinition().accept(visitor); + assertEquals(visitor.write(), EXPECTED_CLASS_STRING_SIMPLE); + } + + @Test + public void gapicClassWithHeader() { + ClassDefinition classDef = + ClassDefinition.builder() + .setPackageString("com.google.showcase.v1beta1.stub") + .setName("EchoStubSettings") + .setScope(ScopeNode.PUBLIC) + .build(); + List gapicClassWithHeaderList = + Composer.addApacheLicense(Arrays.asList(GapicClass.create(Kind.TEST, classDef))); + JavaWriterVisitor visitor = new JavaWriterVisitor(); + gapicClassWithHeaderList.get(0).classDefinition().accept(visitor); + assertEquals(visitor.write(), EXPECTED_CLASS_STRING_WITH_HEADER); + } + + private static final String EXPECTED_CLASS_STRING_SIMPLE = + "package com.google.showcase.v1beta1.stub;\n\n" + + "// This is a test class for file-diff infra\n" + + "public class EchoStubSettings {}\n"; + + private static final String EXPECTED_CLASS_STRING_WITH_HEADER = + "/*\n" + + " * Copyright 2020 Google LLC\n" + + " *\n" + + " * Licensed under the Apache License, Version 2.0 (the \"License\");\n" + + " * you may not use this file except in compliance with the License.\n" + + " * You may obtain a copy of the License at\n" + + " *\n" + + " * https://www.apache.org/licenses/LICENSE-2.0\n" + + " *\n" + + " * Unless required by applicable law or agreed to in writing, software\n" + + " * distributed under the License is distributed on an \"AS IS\" BASIS,\n" + + " * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + + " * See the License for the specific language governing permissions and\n" + + " * limitations under the License.\n" + + " */\n\n" + + "package com.google.showcase.v1beta1.stub;\n\n" + + "public class EchoStubSettings {}\n"; +} diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel new file mode 100644 index 0000000000..cf5efe56d1 --- /dev/null +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel @@ -0,0 +1,6 @@ +package(default_visibility = ["//visibility:public"]) + +filegroup( + name = "goldens_files", + srcs = glob(["*.golden"]), +) \ No newline at end of file diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestClassWithHeader.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestClassWithHeader.golden new file mode 100644 index 0000000000..ad531d6d09 --- /dev/null +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestClassWithHeader.golden @@ -0,0 +1,19 @@ +/* + * Copyright 2020 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.showcase.v1beta1.stub; + +public class EchoStubSettings {} diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden new file mode 100644 index 0000000000..0586b32707 --- /dev/null +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden @@ -0,0 +1,4 @@ +package com.google.showcase.v1beta1.stub; + +// This is a test class for file-diff infra +public class EchoStubSettings {} \ No newline at end of file From f42d269ed77fbe645f1d7feb39f7d8bd651d773b Mon Sep 17 00:00:00 2001 From: xiaozhenliugg Date: Tue, 8 Sep 2020 18:34:31 -0700 Subject: [PATCH 2/3] format --- .../api/generator/gapic/composer/FileDiffInfraDummyTest.java | 4 ++-- .../google/api/generator/gapic/composer/goldens/BUILD.bazel | 2 +- .../composer/goldens/FileDiffInfraDummyTestSimpleClass.golden | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java b/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java index d1b8628b49..4d5d1bfe95 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java +++ b/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java @@ -30,11 +30,11 @@ public class FileDiffInfraDummyTest { // Add two simple tests for testing the file-diff infra. // 1. The two unit tests create simple gapic classes since here is gapic/composer folder. - // 2. Two unit tests are created because we have the case of two expceted strings comparison + // 2. Two unit tests are created because we have the case of two expected strings comparison // in one test class e.g. ResourceNameHelperClassComposer. In that case, two golden files will be // created. // - // TODO(xiaozhenliu): remove this test class once the file-diff infra is in place and tested well. + // TODO(xiaozhenliu): remove this test class once the file-diff infra is in place and well-tested. @Test public void simpleGapicClass() { ClassDefinition classDef = diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel index cf5efe56d1..85ac1a519e 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel @@ -3,4 +3,4 @@ package(default_visibility = ["//visibility:public"]) filegroup( name = "goldens_files", srcs = glob(["*.golden"]), -) \ No newline at end of file +) diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden b/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden index 0586b32707..82eb2e6b92 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden +++ b/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden @@ -1,4 +1,4 @@ package com.google.showcase.v1beta1.stub; // This is a test class for file-diff infra -public class EchoStubSettings {} \ No newline at end of file +public class EchoStubSettings {} From d9fbb0a0976e0dff9286e18711b265b201caf2bd Mon Sep 17 00:00:00 2001 From: xiaozhenliugg Date: Wed, 9 Sep 2020 17:52:59 -0700 Subject: [PATCH 3/3] move dummy test to separate folder --- .../google/api/generator/gapic/BUILD.bazel | 1 + .../api/generator/gapic/composer/BUILD.bazel | 1 - .../api/generator/gapic/dummy/BUILD.bazel | 21 ++++++++++++ .../FileDiffInfraDummyTest.java | 34 ++++++++++++------- .../{composer => dummy}/goldens/BUILD.bazel | 0 ...leDiffInfraDummyTestClassWithHeader.golden | 0 .../FileDiffInfraDummyTestSimpleClass.golden | 0 7 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 src/test/java/com/google/api/generator/gapic/dummy/BUILD.bazel rename src/test/java/com/google/api/generator/gapic/{composer => dummy}/FileDiffInfraDummyTest.java (74%) rename src/test/java/com/google/api/generator/gapic/{composer => dummy}/goldens/BUILD.bazel (100%) rename src/test/java/com/google/api/generator/gapic/{composer => dummy}/goldens/FileDiffInfraDummyTestClassWithHeader.golden (100%) rename src/test/java/com/google/api/generator/gapic/{composer => dummy}/goldens/FileDiffInfraDummyTestSimpleClass.golden (100%) diff --git a/src/test/java/com/google/api/generator/gapic/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/BUILD.bazel index ef1035d943..7a9cbd0da5 100644 --- a/src/test/java/com/google/api/generator/gapic/BUILD.bazel +++ b/src/test/java/com/google/api/generator/gapic/BUILD.bazel @@ -4,6 +4,7 @@ filegroup( name = "gapic_files", srcs = [ "//src/test/java/com/google/api/generator/gapic/composer:composer_files", + "//src/test/java/com/google/api/generator/gapic/dummy:dummy_files", "//src/test/java/com/google/api/generator/gapic/model:model_files", "//src/test/java/com/google/api/generator/gapic/protoparser:protoparser_files", ], diff --git a/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel index 89dd8025b8..740ba1b5f2 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel +++ b/src/test/java/com/google/api/generator/gapic/composer/BUILD.bazel @@ -14,7 +14,6 @@ TESTS = [ "ServiceSettingsClassComposerTest", "ServiceStubSettingsClassComposerTest", "ServiceStubClassComposerTest", - "FileDiffInfraDummyTest", ] filegroup( diff --git a/src/test/java/com/google/api/generator/gapic/dummy/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/dummy/BUILD.bazel new file mode 100644 index 0000000000..84e4febc7a --- /dev/null +++ b/src/test/java/com/google/api/generator/gapic/dummy/BUILD.bazel @@ -0,0 +1,21 @@ +package(default_visibility = ["//visibility:public"]) + +TESTS = [ + "FileDiffInfraDummyTest", +] + +filegroup( + name = "dummy_files", + srcs = ["{0}.java".format(f) for f in TESTS], +) + +[java_test( + name = test_name, + srcs = ["{0}.java".format(test_name)], + test_class = "com.google.api.generator.gapic.dummy.{0}".format(test_name), + deps = [ + "//src/main/java/com/google/api/generator/engine/ast", + "//src/main/java/com/google/api/generator/engine/writer", + "@junit_junit//jar", + ], +) for test_name in TESTS] diff --git a/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java b/src/test/java/com/google/api/generator/gapic/dummy/FileDiffInfraDummyTest.java similarity index 74% rename from src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java rename to src/test/java/com/google/api/generator/gapic/dummy/FileDiffInfraDummyTest.java index 4d5d1bfe95..9dcc0ce252 100644 --- a/src/test/java/com/google/api/generator/gapic/composer/FileDiffInfraDummyTest.java +++ b/src/test/java/com/google/api/generator/gapic/dummy/FileDiffInfraDummyTest.java @@ -12,31 +12,29 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.api.generator.gapic.composer; +package com.google.api.generator.gapic.dummy; import static junit.framework.Assert.assertEquals; +import com.google.api.generator.engine.ast.BlockComment; import com.google.api.generator.engine.ast.ClassDefinition; import com.google.api.generator.engine.ast.CommentStatement; import com.google.api.generator.engine.ast.LineComment; import com.google.api.generator.engine.ast.ScopeNode; import com.google.api.generator.engine.writer.JavaWriterVisitor; -import com.google.api.generator.gapic.model.GapicClass; -import com.google.api.generator.gapic.model.GapicClass.Kind; import java.util.Arrays; -import java.util.List; import org.junit.Test; public class FileDiffInfraDummyTest { // Add two simple tests for testing the file-diff infra. - // 1. The two unit tests create simple gapic classes since here is gapic/composer folder. + // 1. The two unit tests create simple java classes. // 2. Two unit tests are created because we have the case of two expected strings comparison // in one test class e.g. ResourceNameHelperClassComposer. In that case, two golden files will be // created. // // TODO(xiaozhenliu): remove this test class once the file-diff infra is in place and well-tested. @Test - public void simpleGapicClass() { + public void simpleClass() { ClassDefinition classDef = ClassDefinition.builder() .setHeaderCommentStatements( @@ -47,27 +45,39 @@ public void simpleGapicClass() { .setName("EchoStubSettings") .setScope(ScopeNode.PUBLIC) .build(); - GapicClass gapicClass = GapicClass.create(Kind.TEST, classDef); JavaWriterVisitor visitor = new JavaWriterVisitor(); - gapicClass.classDefinition().accept(visitor); + classDef.accept(visitor); assertEquals(visitor.write(), EXPECTED_CLASS_STRING_SIMPLE); } @Test - public void gapicClassWithHeader() { + public void classWithHeader() { ClassDefinition classDef = ClassDefinition.builder() + .setFileHeader( + Arrays.asList( + CommentStatement.withComment(BlockComment.withComment(APACHE_LICENSE_STRING)))) .setPackageString("com.google.showcase.v1beta1.stub") .setName("EchoStubSettings") .setScope(ScopeNode.PUBLIC) .build(); - List gapicClassWithHeaderList = - Composer.addApacheLicense(Arrays.asList(GapicClass.create(Kind.TEST, classDef))); JavaWriterVisitor visitor = new JavaWriterVisitor(); - gapicClassWithHeaderList.get(0).classDefinition().accept(visitor); + classDef.accept(visitor); assertEquals(visitor.write(), EXPECTED_CLASS_STRING_WITH_HEADER); } + private static final String APACHE_LICENSE_STRING = + "Copyright 2020 Google LLC\n\n" + + "Licensed under the Apache License, Version 2.0 (the \"License\");\n" + + "you may not use this file except in compliance with the License.\n" + + "You may obtain a copy of the License at\n\n" + + " https://www.apache.org/licenses/LICENSE-2.0\n\n" + + "Unless required by applicable law or agreed to in writing, software\n" + + "distributed under the License is distributed on an \"AS IS\" BASIS,\n" + + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" + + "See the License for the specific language governing permissions and\n" + + "limitations under the License."; + private static final String EXPECTED_CLASS_STRING_SIMPLE = "package com.google.showcase.v1beta1.stub;\n\n" + "// This is a test class for file-diff infra\n" diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel b/src/test/java/com/google/api/generator/gapic/dummy/goldens/BUILD.bazel similarity index 100% rename from src/test/java/com/google/api/generator/gapic/composer/goldens/BUILD.bazel rename to src/test/java/com/google/api/generator/gapic/dummy/goldens/BUILD.bazel diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestClassWithHeader.golden b/src/test/java/com/google/api/generator/gapic/dummy/goldens/FileDiffInfraDummyTestClassWithHeader.golden similarity index 100% rename from src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestClassWithHeader.golden rename to src/test/java/com/google/api/generator/gapic/dummy/goldens/FileDiffInfraDummyTestClassWithHeader.golden diff --git a/src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden b/src/test/java/com/google/api/generator/gapic/dummy/goldens/FileDiffInfraDummyTestSimpleClass.golden similarity index 100% rename from src/test/java/com/google/api/generator/gapic/composer/goldens/FileDiffInfraDummyTestSimpleClass.golden rename to src/test/java/com/google/api/generator/gapic/dummy/goldens/FileDiffInfraDummyTestSimpleClass.golden