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_CustomSuperClassAnalyzer extends AnAnalyzer<CustomSuperClassAnalyzer> {
private Log log;
@Override
public LoggingRule enableLogging() {
log = LoggingRule.createMock();
return new LoggingRule(log);
}
@Override
protected CustomSuperClassAnalyzer createAnalyzer() {
return new CustomSuperClassAnalyzer(singleton("foo.Bar"));
}
@After
public void resetMock() {
reset(log);
}
@Test
public void logsObsoleteSuperClassEntry() {
analyzeFile("SubClassThatShouldBeLive.class");
doFinishAnalysis();
verify(log).warn(Matchers.contains("foo.Bar"));
}
@Test
public void doesNotLogSuperClassEntryFoundInClassPath() {
this.objectUnderTest = new CustomSuperClassAnalyzer(singleton("java.lang.Thread"));
analyzeFile("SubClassThatShouldBeLive.class");
doFinishAnalysis();
verify(log, never()).warn(anyString());
}
}