Skip to content

Commit

Permalink
Recursively validate parent class elements.
Browse files Browse the repository at this point in the history
  • Loading branch information
Leland Takamine committed Aug 22, 2018
1 parent 9cc04ec commit de950e8
Showing 1 changed file with 50 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,56 @@ public Set<? extends Class<? extends Annotation>> annotations() {
assertThat(requiresGeneratedCodeProcessor.rejectedRounds).isEqualTo(0);
}

@Test public void properlyDefersProcessing_superclassParent() {
JavaFileObject classAFileObject = JavaFileObjects.forSourceLines("test.ClassA",
"package test;",
"",
"@" + RequiresGeneratedCode.class.getCanonicalName(),
"public class ClassA extends SomeGeneratedClass {}");
JavaFileObject classBFileObject = JavaFileObjects.forSourceLines("test.ClassB",
"package test;",
"",
"@" + GeneratesCode.class.getCanonicalName(),
"public class ClassB {}");
RequiresGeneratedCodeProcessor requiresGeneratedCodeProcessor =
new RequiresGeneratedCodeProcessor();
assertAbout(javaSources())
.that(ImmutableList.of(classAFileObject, classBFileObject))
.processedWith(requiresGeneratedCodeProcessor, new GeneratesCodeProcessor())
.compilesWithoutError()
.and()
.generatesFileNamed(
SOURCE_OUTPUT, "test", "GeneratedByRequiresGeneratedCodeProcessor.java");
assertThat(requiresGeneratedCodeProcessor.rejectedRounds).isEqualTo(0);
}

@Test public void properlyDefersProcessing_superclassGrandparent() {
JavaFileObject classASuperclassFileObject = JavaFileObjects.forSourceLines("test.ClassAParent",
"package test;",
"",
"public class ClassAParent extends SomeGeneratedClass {}");
JavaFileObject classAFileObject = JavaFileObjects.forSourceLines("test.ClassA",
"package test;",
"",
"@" + RequiresGeneratedCode.class.getCanonicalName(),
"public class ClassA extends ClassAParent {}");
JavaFileObject classBFileObject = JavaFileObjects.forSourceLines("test.ClassB",
"package test;",
"",
"@" + GeneratesCode.class.getCanonicalName(),
"public class ClassB {}");
RequiresGeneratedCodeProcessor requiresGeneratedCodeProcessor =
new RequiresGeneratedCodeProcessor();
assertAbout(javaSources())
.that(ImmutableList.of(classASuperclassFileObject, classAFileObject, classBFileObject))
.processedWith(requiresGeneratedCodeProcessor, new GeneratesCodeProcessor())
.compilesWithoutError()
.and()
.generatesFileNamed(
SOURCE_OUTPUT, "test", "GeneratedByRequiresGeneratedCodeProcessor.java");
assertThat(requiresGeneratedCodeProcessor.rejectedRounds).isEqualTo(0);
}

@Test
public void properlyDefersProcessing_nestedTypeValidBeforeOuterType() {
JavaFileObject source =
Expand Down

0 comments on commit de950e8

Please sign in to comment.