package net.karneim.pojobuilder.processor.with.builderdependencies;
import net.karneim.pojobuilder.processor.AnnotationProcessor;
import net.karneim.pojobuilder.processor.with.ProcessorTestSupport;
import net.karneim.pojobuilder.testenv.JavaProject.Compilation;
import org.junit.Test;
import static net.karneim.pojobuilder.PbAssertions.assertThat;
/**
* @feature The {@link AnnotationProcessor} generates builder classes.
*/
public class AnnotationProcessor_BuilderDependencies_Test extends ProcessorTestSupport {
/**
* @throws Exception
* @scenario A pojo has a dependency on a not-yet-generated builder.
*/
@Test
public void testShouldGenerateBuilderForPojoWithBuilderDependencies() {
// Given:
sourceFor(PojoE.class);
sourceFor("net.karneim.pojobuilder.processor.with.builderdependencies.PojoF");
sourceFor("net.karneim.pojobuilder.processor.with.builderdependencies.PojoFFactory");
// When:
prj.compile();
// Then:
assertThat(prj)
.generatedSameSourceAs("net.karneim.pojobuilder.processor.with.builderdependencies.PojoFBuilder")
.compiled("net.karneim.pojobuilder.processor.with.builderdependencies.PojoF")
.compiled("net.karneim.pojobuilder.processor.with.builderdependencies.PojoFFactory")
.compiled("net.karneim.pojobuilder.processor.with.builderdependencies.PojoFBuilder")
.reported(Compilation.Success);
}
}