package com.github.jknack.antlr4ide.console; import org.eclipse.core.runtime.preferences.IEclipsePreferences; import org.eclipse.core.runtime.preferences.InstanceScope; import org.junit.Assert; import org.junit.Test; import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.osgi.service.prefs.BackingStoreException; public class ConsoleTest { @Test public void testEnumLogLevel() { Assert.assertEquals(Level.DEBUG, Level.toLevel("DEBUG")); final Level logLevel1 = Level.WARN; Assert.assertEquals("WARN", logLevel1.toString()); } @Test public void testGetDefaultLogLevel() { Assert.assertEquals(Level.INFO, ConsoleImpl.DEFAULT_LOGLEVEL); Assert.assertEquals("INFO", ConsoleImpl.DEFAULT_LOGLEVEL_AS_STRING); } @Test public void testPreferenceLogLevelSetting() throws BackingStoreException { final Level logLevel1 = ConsoleImpl.getLogLevel(); Assert.assertEquals(Level.INFO, logLevel1); final IEclipsePreferences prefs = InstanceScope.INSTANCE .getNode(ConsoleImpl.QUALIFIER); Assert.assertNotNull(prefs); final String trace = "TRACE"; prefs.put(ConsoleImpl.KEY, trace); final Level logLevel2 = ConsoleImpl.getLogLevel(); Assert.assertEquals(Level.TRACE, logLevel2); prefs.put(ConsoleImpl.KEY, "INFO"); final Level logLevel3 = ConsoleImpl.getLogLevel(); Assert.assertEquals(Level.INFO, logLevel3); prefs.clear(); } @Test public void testOutputWithDefault() throws Exception { // preparations final TestAppender appender = new TestAppender(); final Console console = new ConsoleImpl(); LogManager.getRootLogger().addAppender(appender); // start test console.debug("first debug"); console.warning("some warning"); console.info("some info"); console.debug("second debug"); // check actual against expected Assert.assertEquals("", appender.getError()); Assert.assertEquals("some warning", appender.getWarning()); Assert.assertEquals("some info", appender.getInfo()); Assert.assertEquals("", appender.getDebug()); Assert.assertEquals("", appender.getTrace()); } }