package net.karneim.pojobuilder.analysis.with.staticfactorymethod;
import net.karneim.pojobuilder.analysis.Input;
import net.karneim.pojobuilder.analysis.Output;
import net.karneim.pojobuilder.analysis.with.AnalysisTestSupport;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
public class JavaModelAnalyzer_StaticFactoryMethod_Test extends AnalysisTestSupport {
@Test
public void testWithoutSfm() {
// Given:
Input input = inputFor(StaticFactoryMethodAnalyses.WithoutSfm.class);
// When:
Output output = underTest.analyze(input);
// Then:
assertThat(output).isNotNull();
assertThat(output.getBuilderModel().getStaticFactoryMethod()).isNull();
}
@Test
public void testWithDecapitalisedSfm() {
// Given:
Input input = inputFor(StaticFactoryMethodAnalyses.WithDecapitalisedSfm.class);
// When:
Output output = underTest.analyze(input);
// Then:
assertThat(output).isNotNull();
assertThat(output.getBuilderModel().getStaticFactoryMethod().getName()).isEqualTo("withDecapitalisedSfm");
}
@Test
public void testWithArbitrarySfm() {
// Given:
Input input = inputFor(StaticFactoryMethodAnalyses.WithArbitrarySfm.class);
// When:
Output output = underTest.analyze(input);
// Then:
assertThat(output).isNotNull();
assertThat(output.getBuilderModel().getStaticFactoryMethod().getName()).isEqualTo("$WithArbitrarySfm");
}
@Test
public void testWithGenerationGap() {
// Given:
Input input = inputFor(StaticFactoryMethodAnalyses.WithGenerationGap.class);
// When:
Output output = underTest.analyze(input);
// Then:
assertThat(output).isNotNull();
assertThat(output.getBuilderModel().getStaticFactoryMethod()).isNull();
assertThat(output.getManualBuilderModel().getStaticFactoryMethod().getName()).isEqualTo("withGenerationGap");
}
}