package de.is24.deadcode4j.analyzer; import org.junit.Test; public final class A_SuperClassAnalyzer extends AByteCodeAnalyzer<SuperClassAnalyzer> { @Override protected SuperClassAnalyzer createAnalyzer() { return new SuperClassAnalyzer("junit", "java.lang.Thread") { }; } @Test public void reportsASubClassAsLiveCode() { objectUnderTest = new SuperClassAnalyzer("junit", "javax.servlet.http.HttpServlet", "java.lang.Thread") { }; analyzeFile("DeadServlet.class"); analyzeFile("SubClassThatShouldBeLive.class"); assertThatDependenciesAreReported("DeadServlet", "SubClassThatShouldBeLive"); } @Test public void reportsASubClassOfASubClassAsLiveCode() { analyzeFile("SubClassOfSubClassThatShouldBeLive.class"); assertThatDependenciesAreReported("SubClassOfSubClassThatShouldBeLive"); } @Test public void doesNotReportASubClassWithIrrelevantSuperClass() { analyzeFile("DeadServlet.class"); analyzeFile("SubClassThatShouldBeLive.class"); assertThatDependenciesAreReported("SubClassThatShouldBeLive"); } }