diff --git a/slf4j-simple/src/test/java/org/slf4j/simple/ConfigParamsTest.java b/slf4j-simple/src/test/java/org/slf4j/simple/ConfigParamsTest.java new file mode 100644 index 00000000..109b3a8e --- /dev/null +++ b/slf4j-simple/src/test/java/org/slf4j/simple/ConfigParamsTest.java @@ -0,0 +1,53 @@ +package org.slf4j.simple; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.event.Level; + +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertTrue; + +/** + * Test class to verify configuration parameters of SimpleLogger + * + * @since 2.0.18 + */ +public class ConfigParamsTest { + + + private ListAppendingOutputStream prepareSink(List outputList) { + return new ListAppendingOutputStream(outputList); + } + + @BeforeClass + static public void resetConfigParams() { + SimpleLogger.CONFIG_PARAMS.init(); + } + + public Logger createLogger(ListAppendingOutputStream outputStream, Level level, String warnLevelString) { + SimpleLogger.CONFIG_PARAMS.outputChoice = new OutputChoice(new PrintStream(outputStream)); + + SimpleLogger.CONFIG_PARAMS.warnLevelString = warnLevelString; + + SimpleLogger logger = new SimpleLogger(ConfigParamsTest.class.getName()); + logger.currentLogLevel = SimpleLoggerConfiguration.stringToLevel(level.toString()); + return logger; + } + + @Test + public void simpleTest(){ + String WARN_LEVEL_STRING = "WXYZ"; + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.TRACE, WARN_LEVEL_STRING); + + configuredLogger.warn("This is a test"); + + String str0 = outputList.get(0); + assertTrue(str0.contains(WARN_LEVEL_STRING)); + + } +} diff --git a/slf4j-simple/src/test/java/org/slf4j/simple/ListAppendingOutputStream.java b/slf4j-simple/src/test/java/org/slf4j/simple/ListAppendingOutputStream.java new file mode 100644 index 00000000..9cebd993 --- /dev/null +++ b/slf4j-simple/src/test/java/org/slf4j/simple/ListAppendingOutputStream.java @@ -0,0 +1,25 @@ +package org.slf4j.simple; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.List; + +public class ListAppendingOutputStream extends OutputStream { + + private final StringBuilder stringBuilder = new StringBuilder(); + private final List targetList; + + ListAppendingOutputStream(List list) {this.targetList = list;} + + + @Override + public void write(int b) throws IOException { + stringBuilder.append((char) b); + } + + @Override + public void flush() { + targetList.add(stringBuilder.toString()); + stringBuilder.delete(0, stringBuilder.length()); + } +} diff --git a/slf4j-simple/src/test/java/org/slf4j/simple/LoggerTestSuite.java b/slf4j-simple/src/test/java/org/slf4j/simple/LoggerTestSuite.java index 5784c1bd..0513297c 100644 --- a/slf4j-simple/src/test/java/org/slf4j/simple/LoggerTestSuite.java +++ b/slf4j-simple/src/test/java/org/slf4j/simple/LoggerTestSuite.java @@ -5,8 +5,6 @@ import org.junit.Test; import org.slf4j.Logger; import org.slf4j.event.Level; -import java.io.IOException; -import java.io.OutputStream; import java.util.ArrayList; import java.util.List; @@ -16,179 +14,157 @@ import static org.junit.Assert.assertTrue; public abstract class LoggerTestSuite { - public static class ListAppendingOutputStream extends OutputStream { - private final StringBuilder word = new StringBuilder(); - private int index = 0; - private final List list; - - private ListAppendingOutputStream(List list) {this.list = list;} - - - @Override - public void write(int b) throws IOException { - word.append((char) b); - } - - @Override - public void flush() { - list.add(word.toString()); - word.delete(0, word.length()); - index++; - } - } - - private ListAppendingOutputStream prepareSink(List source) { - return new ListAppendingOutputStream(source); - + private ListAppendingOutputStream prepareSink(List outputList) { + return new ListAppendingOutputStream(outputList); } @Test public void testTrace() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.TRACE); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.TRACE); assertTrue("Trace level should be enabled for this test", configuredLogger.isTraceEnabled()); configuredLogger.trace("Simple trace message"); - assertEquals("Trace message should've been captured", 1, loggingEvents.size()); - assertTrue("Message should be logged in trace level", isTraceMessage(loggingEvents.get(0))); + assertEquals("Trace message should've been captured", 1, outputList.size()); + assertTrue("Message should be logged in trace level", isTraceMessage(outputList.get(0))); assertEquals("Supplied trace message wasn't found in the log", "Simple trace message", - extractMessage(loggingEvents.get(0))); + extractMessage(outputList.get(0))); - loggingEvents.clear(); + outputList.clear(); configuredLogger.debug("Simple debug message"); configuredLogger.info("Simple info message"); configuredLogger.warn("Simple warn message"); configuredLogger.error("Simple error message"); - assertEquals("The other levels should have been captured", 4, loggingEvents.size()); + assertEquals("The other levels should have been captured", 4, outputList.size()); } @Test public void testDebug() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.DEBUG); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.DEBUG); configuredLogger.trace("Simple trace message"); - assertEquals("Lower levels should have been ignored", 0, loggingEvents.size()); + assertEquals("Lower levels should have been ignored", 0, outputList.size()); assertTrue("Debug level should be enabled for this test", configuredLogger.isDebugEnabled()); configuredLogger.debug("Simple debug message"); - assertEquals("Debug message should've been captured", 1, loggingEvents.size()); - assertTrue("Message should be logged in debug level", isDebugMessage(loggingEvents.get(0))); + assertEquals("Debug message should've been captured", 1, outputList.size()); + assertTrue("Message should be logged in debug level", isDebugMessage(outputList.get(0))); assertEquals("Supplied debug message wasn't found in the log", "Simple debug message", - extractMessage(loggingEvents.get(0))); + extractMessage(outputList.get(0))); - loggingEvents.clear(); + outputList.clear(); configuredLogger.info("Simple info message"); configuredLogger.warn("Simple warn message"); configuredLogger.error("Simple error message"); - assertEquals("The other levels should have been captured", 3, loggingEvents.size()); + assertEquals("The other levels should have been captured", 3, outputList.size()); } @Test public void testInfo() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.INFO); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.INFO); configuredLogger.trace("Simple trace message"); configuredLogger.debug("Simple debug message"); - assertEquals("Lower levels should have been ignored", 0, loggingEvents.size()); + assertEquals("Lower levels should have been ignored", 0, outputList.size()); assertTrue("Info level should be enabled for this test", configuredLogger.isInfoEnabled()); configuredLogger.info("Simple info message"); - assertEquals("Info message should've been captured", 1, loggingEvents.size()); - assertTrue("Message should be logged in debug level", isInfoMessage(loggingEvents.get(0))); + assertEquals("Info message should've been captured", 1, outputList.size()); + assertTrue("Message should be logged in debug level", isInfoMessage(outputList.get(0))); assertEquals("Supplied info message wasn't found in the log", "Simple info message", - extractMessage(loggingEvents.get(0))); + extractMessage(outputList.get(0))); - loggingEvents.clear(); + outputList.clear(); configuredLogger.warn("Simple warn message"); configuredLogger.error("Simple error message"); - assertEquals("The other levels should have been captured", 2, loggingEvents.size()); + assertEquals("The other levels should have been captured", 2, outputList.size()); } @Test public void testWarn() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.WARN); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.WARN); configuredLogger.trace("Simple trace message"); configuredLogger.debug("Simple debug message"); configuredLogger.info("Simple info message"); - assertEquals("Lower levels should have been ignored", 0, loggingEvents.size()); + assertEquals("Lower levels should have been ignored", 0, outputList.size()); assertTrue("Warn level should be enabled for this test", configuredLogger.isWarnEnabled()); configuredLogger.warn("Simple warn message"); - assertEquals("Warn message should've been captured", 1, loggingEvents.size()); - assertTrue("Message should be logged in warn level", isWarnMessage(loggingEvents.get(0))); + assertEquals("Warn message should've been captured", 1, outputList.size()); + assertTrue("Message should be logged in warn level", isWarnMessage(outputList.get(0))); assertEquals("Supplied warn message wasn't found in the log", "Simple warn message", - extractMessage(loggingEvents.get(0))); + extractMessage(outputList.get(0))); - loggingEvents.clear(); + outputList.clear(); configuredLogger.error("Simple error message"); - assertEquals("The other levels should have been captured", 1, loggingEvents.size()); + assertEquals("The other levels should have been captured", 1, outputList.size()); } @Test public void testError() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.ERROR); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.ERROR); configuredLogger.trace("Simple trace message"); configuredLogger.debug("Simple debug message"); configuredLogger.info("Simple info message"); configuredLogger.warn("Simple warn message"); - assertEquals("Lower levels should have been ignored", 0, loggingEvents.size()); + assertEquals("Lower levels should have been ignored", 0, outputList.size()); assertTrue("Error level should be enabled for this test", configuredLogger.isErrorEnabled()); configuredLogger.error("Simple error message"); - assertEquals("Error message should've been captured", 1, loggingEvents.size()); - assertTrue("Message should be logged in error level", isErrorMessage(loggingEvents.get(0))); + assertEquals("Error message should've been captured", 1, outputList.size()); + assertTrue("Message should be logged in error level", isErrorMessage(outputList.get(0))); assertEquals("Supplied error message wasn't found in the log", "Simple error message", - extractMessage(loggingEvents.get(0))); + extractMessage(outputList.get(0))); } @Test public void testFormatting() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.INFO); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.INFO); configuredLogger.info("Some {} string", "formatted"); - assertEquals("The formatted message should've been captured", 1, loggingEvents.size()); - assertEquals("Message should've been formatted", "Some formatted string", extractMessage(loggingEvents.get(0))); + assertEquals("The formatted message should've been captured", 1, outputList.size()); + assertEquals("Message should've been formatted", "Some formatted string", extractMessage(outputList.get(0))); } @Test public void testException() { - ArrayList loggingEvents = new ArrayList<>(); - Logger configuredLogger = createLogger(prepareSink(loggingEvents), Level.INFO); + ArrayList outputList = new ArrayList<>(); + Logger configuredLogger = createLogger(prepareSink(outputList), Level.INFO); Exception exception = new RuntimeException("My error"); configuredLogger.info("Logging with an exception", exception); - assertEquals("The formatted message should've been captured", 1, loggingEvents.size()); + assertEquals("The formatted message should've been captured", 1, outputList.size()); assertEquals("Message should've been formatted", "My error", - extractExceptionMessage(loggingEvents.get(0))); + extractExceptionMessage(outputList.get(0))); assertEquals("Message should've been formatted", "java.lang.RuntimeException", - extractExceptionType(loggingEvents.get(0))); + extractExceptionType(outputList.get(0))); }