package net.karneim.pojobuilder.processor.with.customannotation; import net.karneim.pojobuilder.processor.with.ProcessorTestSupport; import net.karneim.pojobuilder.processor.with.customannotation.builder.FluentPojoABBuilderB; import net.karneim.pojobuilder.processor.with.customannotation.builder.FluentPojoABuilderA; import net.karneim.pojobuilder.processor.with.customannotation.builder.FluentPojoCBuilderB; import net.karneim.pojobuilder.testenv.JavaProject.Compilation; import org.junit.Test; import static net.karneim.pojobuilder.PbAssertions.assertThat; public class AnnotationProcessor_CustomAnnotation_Test extends ProcessorTestSupport { @Test public void testShouldGenerateBuilderForPojoWithSingleCustomAnnotation() { // Given: sourceFor(PojoA.class,MyCustomAnnotationA.class); // When: prj.compile(); // Then: assertThat(prj) .generatedSameSourceAs(FluentPojoABuilderA.class) .compiled(FluentPojoABuilderA.class) .reported(Compilation.Success); } @Test public void testShouldGenerateBuilderForPojoWithMultipleCustomAnnotations() { // Given: sourceFor(PojoAB.class,MyCustomAnnotationA.class,MyCustomAnnotationB.class); // When: prj.compile(); // Then: assertThat(prj) .generatedSameSourceAs(FluentPojoABBuilderB.class) .compiled(FluentPojoABBuilderB.class) .reported(Compilation.Success); } @Test public void testShouldGenerateBuilderForPojoWithMultipleCustomAnnotationsInAnnotationHierarchy() { // Given: sourceFor(PojoC.class,MyCustomAnnotationA.class,MyCustomAnnotationB.class,MyCustomAnnotationC.class); // When: prj.compile(); // Then: assertThat(prj) .generatedSameSourceAs(FluentPojoCBuilderB.class) .compiled(FluentPojoCBuilderB.class) .reported(Compilation.Success); } }