package spoon.test.logging;
import org.apache.log4j.Level;
import org.apache.log4j.Priority;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import spoon.Launcher;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class LogTest {
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{Level.ALL, true, true, true, true },
{Level.DEBUG, true, true, true, true },
{Level.INFO, true, true, true, false },
{Level.WARN, false, true, true, false },
{Level.ERROR, false, false, true, false },
{Level.OFF, false, false, false, false }
});
}
@Parameterized.Parameter(0)
public Level level;
@Parameterized.Parameter(1)
public boolean isInfo;
@Parameterized.Parameter(2)
public boolean isWarn;
@Parameterized.Parameter(3)
public boolean isError;
@Parameterized.Parameter(4)
public boolean isDebug;
@Test
public void testAllLevelsForLogs() throws Exception {
final Launcher launcher = new Launcher();
launcher.setArgs(new String[] {
"-i", "./src/test/java/spoon/test/logging",
"--level", level.toString()
});
assertEquals(level, launcher.getFactory().getEnvironment().getLevel());
Launcher.LOGGER.info("Log info");
Launcher.LOGGER.warn("Log warn");
Launcher.LOGGER.error("Log error");
Launcher.LOGGER.debug("Log debug");
assertEquals(isInfo, Launcher.LOGGER.isEnabledFor(Priority.INFO));
assertEquals(isWarn, Launcher.LOGGER.isEnabledFor(Priority.WARN));
assertEquals(isError, Launcher.LOGGER.isEnabledFor(Priority.ERROR));
assertEquals(isDebug, Launcher.LOGGER.isEnabledFor(Priority.DEBUG));
}
}