package de.is24.deadcode4j.analyzer; import org.junit.Test; import static com.google.common.collect.Sets.newHashSet; import static de.is24.deadcode4j.AnalysisContextBuilder.givenAnalysisContext; import static de.is24.deadcode4j.IntermediateResults.resultSetFor; public class A_SpringDataCustomRepositoriesAnalyzer extends AByteCodeAnalyzer<SpringDataCustomRepositoriesAnalyzer> { @Override protected SpringDataCustomRepositoriesAnalyzer createAnalyzer() { return new SpringDataCustomRepositoriesAnalyzer(); } @Test public void recognizesCustomRepository() { analyzeFile("de/is24/deadcode4j/analyzer/customrepositories/FooRepository.class"); analyzeFile("de/is24/deadcode4j/analyzer/customrepositories/FooRepositoryCustom.class"); analyzeFile("de/is24/deadcode4j/analyzer/customrepositories/FooRepositoryImpl.class"); doFinishAnalysis(); assertThatDependenciesAreReportedFor("de.is24.deadcode4j.analyzer.customrepositories.FooRepository", "de.is24.deadcode4j.analyzer.customrepositories.FooRepositoryImpl"); } @Test public void storesCustomRepositoryInterfacesAsIntermediateResults() { analyzeFile("de/is24/deadcode4j/analyzer/customrepositories/FooRepository.class"); assertThatIntermediateResultIsStored(); } @Test public void reportsImplementationsOfIntermediateResults() { this.analysisContext = givenAnalysisContext( this.analysisContext.getModule(), this.objectUnderTest.getClass(), resultSetFor(newHashSet("de.is24.deadcode4j.analyzer.customrepositories.FooRepositoryCustom"))); analyzeFile("de/is24/deadcode4j/analyzer/customrepositories/FooRepositoryImpl.class"); assertThatDependenciesAreReportedFor("de.is24.deadcode4j.analyzer.customrepositories.FooRepository", "de.is24.deadcode4j.analyzer.customrepositories.FooRepositoryImpl"); } }