package de.is24.deadcode4j.analyzer; import de.is24.deadcode4j.junit.LoggingRule; import org.apache.maven.plugin.logging.Log; import org.junit.After; import org.junit.Test; import org.mockito.Matchers; import static java.util.Collections.singleton; import static org.mockito.Matchers.anyString; import static org.mockito.Mockito.*; public final class A_CustomAnnotationsAnalyzer extends AnAnalyzer<CustomAnnotationsAnalyzer> { private Log log; @Override public LoggingRule enableLogging() { log = LoggingRule.createMock(); return new LoggingRule(log); } @Override protected CustomAnnotationsAnalyzer createAnalyzer() { return new CustomAnnotationsAnalyzer(singleton("foo.Bar")); } @After public void resetMock() { reset(log); } @Test public void logsObsoleteInterfaceEntry() { analyzeFile("AnnotatedClass.class"); doFinishAnalysis(); verify(log).warn(Matchers.contains("foo.Bar")); } @Test public void doesNotLogInterfaceEntryFoundInClassPath() { this.objectUnderTest = new CustomAnnotationsAnalyzer(singleton("de.is24.deadcode4j.junit.Annotation")); analyzeFile("AnnotatedClass.class"); doFinishAnalysis(); verify(log, never()).warn(anyString()); } }