From 08f158ebfffcfd99252f73dbc53a463431c2513e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89amonn=20McManus?= Date: Tue, 8 Dec 2020 06:42:51 -0800 Subject: Rewrite `AutoServiceProcessorTest` to use more modern Compile Testing APIs. RELNOTES=n/a PiperOrigin-RevId: 346311927 --- .../processor/AutoServiceProcessorTest.java | 79 ++++++++++++++-------- .../META-INF/services/test.AnotherServiceMulti | 1 - .../META-INF/services/test.SomeServiceMulti | 1 - 3 files changed, 50 insertions(+), 31 deletions(-) delete mode 100644 service/processor/src/test/resources/META-INF/services/test.AnotherServiceMulti delete mode 100644 service/processor/src/test/resources/META-INF/services/test.SomeServiceMulti (limited to 'service/processor') diff --git a/service/processor/src/test/java/com/google/auto/service/processor/AutoServiceProcessorTest.java b/service/processor/src/test/java/com/google/auto/service/processor/AutoServiceProcessorTest.java index d3e00a73..ab51065c 100644 --- a/service/processor/src/test/java/com/google/auto/service/processor/AutoServiceProcessorTest.java +++ b/service/processor/src/test/java/com/google/auto/service/processor/AutoServiceProcessorTest.java @@ -16,52 +16,73 @@ package com.google.auto.service.processor; import static com.google.auto.service.processor.AutoServiceProcessor.MISSING_SERVICES_ERROR; -import static com.google.testing.compile.JavaSourcesSubject.assertThat; +import static com.google.testing.compile.CompilationSubject.assertThat; +import com.google.common.io.Resources; +import com.google.testing.compile.Compilation; +import com.google.testing.compile.Compiler; import com.google.testing.compile.JavaFileObjects; +import javax.tools.StandardLocation; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -/** - * Tests the {@link AutoServiceProcessor}. - */ +/** Tests the {@link AutoServiceProcessor}. */ @RunWith(JUnit4.class) public class AutoServiceProcessorTest { @Test public void autoService() { - assertThat( - JavaFileObjects.forResource("test/SomeService.java"), - JavaFileObjects.forResource("test/SomeServiceProvider1.java"), - JavaFileObjects.forResource("test/SomeServiceProvider2.java"), - JavaFileObjects.forResource("test/Enclosing.java"), - JavaFileObjects.forResource("test/AnotherService.java"), - JavaFileObjects.forResource("test/AnotherServiceProvider.java")) - .processedWith(new AutoServiceProcessor()) - .compilesWithoutError() - .and().generatesFiles( - JavaFileObjects.forResource("META-INF/services/test.SomeService"), - JavaFileObjects.forResource("META-INF/services/test.AnotherService")); + Compilation compilation = + Compiler.javac() + .withProcessors(new AutoServiceProcessor()) + .compile( + JavaFileObjects.forResource("test/SomeService.java"), + JavaFileObjects.forResource("test/SomeServiceProvider1.java"), + JavaFileObjects.forResource("test/SomeServiceProvider2.java"), + JavaFileObjects.forResource("test/Enclosing.java"), + JavaFileObjects.forResource("test/AnotherService.java"), + JavaFileObjects.forResource("test/AnotherServiceProvider.java")); + assertThat(compilation).succeededWithoutWarnings(); + assertThat(compilation) + .generatedFile(StandardLocation.CLASS_OUTPUT, "META-INF/services/test.SomeService") + .hasContents( + Resources.asByteSource(Resources.getResource("META-INF/services/test.SomeService"))); + assertThat(compilation) + .generatedFile(StandardLocation.CLASS_OUTPUT, "META-INF/services/test.AnotherService") + .hasContents( + Resources.asByteSource(Resources.getResource("META-INF/services/test.AnotherService"))); } @Test public void multiService() { - assertThat( - JavaFileObjects.forResource("test/SomeService.java"), - JavaFileObjects.forResource("test/AnotherService.java"), - JavaFileObjects.forResource("test/MultiServiceProvider.java")) - .processedWith(new AutoServiceProcessor()) - .compilesWithoutError() - .and().generatesFiles( - JavaFileObjects.forResource("META-INF/services/test.SomeServiceMulti"), - JavaFileObjects.forResource("META-INF/services/test.AnotherServiceMulti")); + Compilation compilation = + Compiler.javac() + .withProcessors(new AutoServiceProcessor()) + .compile( + JavaFileObjects.forResource("test/SomeService.java"), + JavaFileObjects.forResource("test/AnotherService.java"), + JavaFileObjects.forResource("test/MultiServiceProvider.java")); + assertThat(compilation).succeededWithoutWarnings(); + // We have @AutoService({SomeService.class, AnotherService.class}) class MultiServiceProvider. + // So we expect META-INF/services/test.SomeService with contents that name MultiServiceProvider + // and likewise META-INF/services/test.AnotherService. + assertThat(compilation) + .generatedFile(StandardLocation.CLASS_OUTPUT, "META-INF/services/test.SomeService") + .contentsAsUtf8String() + .isEqualTo("test.MultiServiceProvider\n"); + assertThat(compilation) + .generatedFile(StandardLocation.CLASS_OUTPUT, "META-INF/services/test.AnotherService") + .contentsAsUtf8String() + .isEqualTo("test.MultiServiceProvider\n"); } @Test public void badMultiService() { - assertThat(JavaFileObjects.forResource("test/NoServices.java")) - .processedWith(new AutoServiceProcessor()) - .failsToCompile() - .withErrorContaining(MISSING_SERVICES_ERROR); + Compilation compilation = + Compiler.javac() + .withProcessors(new AutoServiceProcessor()) + .compile(JavaFileObjects.forResource("test/NoServices.java")); + assertThat(compilation).failed(); + assertThat(compilation).hadErrorContaining(MISSING_SERVICES_ERROR); } } diff --git a/service/processor/src/test/resources/META-INF/services/test.AnotherServiceMulti b/service/processor/src/test/resources/META-INF/services/test.AnotherServiceMulti deleted file mode 100644 index f6ef36ac..00000000 --- a/service/processor/src/test/resources/META-INF/services/test.AnotherServiceMulti +++ /dev/null @@ -1 +0,0 @@ -test.MultiServiceProvider diff --git a/service/processor/src/test/resources/META-INF/services/test.SomeServiceMulti b/service/processor/src/test/resources/META-INF/services/test.SomeServiceMulti deleted file mode 100644 index f6ef36ac..00000000 --- a/service/processor/src/test/resources/META-INF/services/test.SomeServiceMulti +++ /dev/null @@ -1 +0,0 @@ -test.MultiServiceProvider -- cgit v1.2.3