diff --git a/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java b/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java index e11adce4f..c515034ef 100755 --- a/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java +++ b/slf4j-api/src/main/java/org/slf4j/event/EventRecodingLogger.java @@ -9,8 +9,8 @@ /** * - * This class is used to record events during the initialization phase of - * the underlying logging framework. It is called by {@link SubstituteLogger}. + * This class is used to record events during the initialization phase of the + * underlying logging framework. It is called by {@link SubstituteLogger}. * * * @author Ceki Gülcü @@ -19,315 +19,305 @@ */ public class EventRecodingLogger implements Logger { - String name; - SubstituteLogger logger; - Queue eventQueue; + String name; + SubstituteLogger logger; + Queue eventQueue; - // as an event recording logger we have no choice but to record all events - final static boolean RECORD_ALL_EVENTS = true; - - public EventRecodingLogger(SubstituteLogger logger, Queue eventQueue) { - this.logger = logger; - this.name = logger.getName(); - this.eventQueue = eventQueue; - } + // as an event recording logger we have no choice but to record all events + final static boolean RECORD_ALL_EVENTS = true; - public String getName() { - return name; - } + public EventRecodingLogger(SubstituteLogger logger, Queue eventQueue) { + this.logger = logger; + this.name = logger.getName(); + this.eventQueue = eventQueue; + } - public boolean isTraceEnabled() { - return RECORD_ALL_EVENTS; - } + public String getName() { + return name; + } - public void trace(String msg) { - recordEventwithoutMarkerArgArray(Level.TRACE, msg, null, null); - } + public boolean isTraceEnabled() { + return RECORD_ALL_EVENTS; + } - public void trace(String format, Object arg) { - recordEventwithoutMarkerArgArray(Level.TRACE, format, new Object[] { arg }, null); - } + public void trace(String msg) { + recordEvent_0Args(Level.TRACE, null, msg, null); + } - public void trace(String format, Object arg1, Object arg2) { - recordEventWithoutMarker2Args(Level.TRACE, format, arg1, arg2); - } + public void trace(String format, Object arg) { + recordEvent_1Args(Level.TRACE, null, format, arg); + } - public void trace(String format, Object... arguments) { - recordEventwithoutMarkerArgArray(Level.TRACE, format, arguments, null); - } + public void trace(String format, Object arg1, Object arg2) { + recordEvent2Args(Level.TRACE, null, format, arg1, arg2); + } - public void trace(String msg, Throwable t) { - recordEventwithoutMarkerArgArray(Level.TRACE, msg, null, t); - } + public void trace(String format, Object... arguments) { + recordEventArgArray(Level.TRACE, null, format, arguments); + } - public boolean isTraceEnabled(Marker marker) { - return RECORD_ALL_EVENTS; - } + public void trace(String msg, Throwable t) { + recordEvent_0Args(Level.TRACE, null, msg, t); + } - public void trace(Marker marker, String msg) { - recordEvent(Level.TRACE, marker, msg, null, null); + public boolean isTraceEnabled(Marker marker) { + return RECORD_ALL_EVENTS; + } - } + public void trace(Marker marker, String msg) { + recordEvent_0Args(Level.TRACE, marker, msg, null); + } - public void trace(Marker marker, String format, Object arg) { - recordEvent(Level.TRACE, marker, format, new Object[] { arg }, null); - } + public void trace(Marker marker, String format, Object arg) { + recordEvent_1Args(Level.TRACE, marker, format, arg); + } - public void trace(Marker marker, String format, Object arg1, Object arg2) { - recordEvent2Args(Level.TRACE, marker, format, arg1, arg2); - } + public void trace(Marker marker, String format, Object arg1, Object arg2) { + recordEvent2Args(Level.TRACE, marker, format, arg1, arg2); + } - public void trace(Marker marker, String format, Object... argArray) { - recordEvent(Level.TRACE, marker, format, argArray, null); + public void trace(Marker marker, String format, Object... argArray) { + recordEventArgArray(Level.TRACE, marker, format, argArray); + } - } + public void trace(Marker marker, String msg, Throwable t) { + recordEvent_0Args(Level.TRACE, marker, msg, t); + } - public void trace(Marker marker, String msg, Throwable t) { - recordEvent(Level.TRACE, marker, msg, null, t); - } + public boolean isDebugEnabled() { + return RECORD_ALL_EVENTS; + } - public boolean isDebugEnabled() { - return RECORD_ALL_EVENTS; - } + public void debug(String msg) { + recordEvent_0Args(Level.DEBUG, null, msg, null); + } - public void debug(String msg) { - recordEventwithoutMarkerArgArray(Level.DEBUG, msg, null, null); - } + public void debug(String format, Object arg) { + recordEvent_1Args(Level.DEBUG, null, format, arg); + } - public void debug(String format, Object arg) { - recordEventwithoutMarkerArgArray(Level.DEBUG, format, new Object[] { arg }, null); + public void debug(String format, Object arg1, Object arg2) { + recordEvent2Args(Level.DEBUG, null, format, arg1, arg2); + } - } + public void debug(String format, Object... arguments) { + recordEventArgArray(Level.DEBUG, null, format, arguments); + } - public void debug(String format, Object arg1, Object arg2) { - recordEventWithoutMarker2Args(Level.DEBUG, format, arg1, arg2); - } + public void debug(String msg, Throwable t) { + recordEvent_0Args(Level.DEBUG, null, msg, t); + } - public void debug(String format, Object... arguments) { - recordEventwithoutMarkerArgArray(Level.DEBUG, format, arguments, null); - } + public boolean isDebugEnabled(Marker marker) { + return RECORD_ALL_EVENTS; + } - public void debug(String msg, Throwable t) { - recordEventwithoutMarkerArgArray(Level.DEBUG, msg, null, t); - } + public void debug(Marker marker, String msg) { + recordEvent_0Args(Level.DEBUG, marker, msg, null); + } - public boolean isDebugEnabled(Marker marker) { - return RECORD_ALL_EVENTS; - } + public void debug(Marker marker, String format, Object arg) { + recordEvent_1Args(Level.DEBUG, marker, format, arg); + } - public void debug(Marker marker, String msg) { - recordEvent(Level.DEBUG, marker, msg, null, null); - } + public void debug(Marker marker, String format, Object arg1, Object arg2) { + recordEvent2Args(Level.DEBUG, marker, format, arg1, arg2); + } - public void debug(Marker marker, String format, Object arg) { - recordEvent(Level.DEBUG, marker, format, new Object[] { arg }, null); - } + public void debug(Marker marker, String format, Object... arguments) { + recordEventArgArray(Level.DEBUG, marker, format, arguments); + } - public void debug(Marker marker, String format, Object arg1, Object arg2) { - recordEvent2Args(Level.DEBUG, marker, format, arg1, arg2); - } + public void debug(Marker marker, String msg, Throwable t) { + recordEvent_0Args(Level.DEBUG, marker, msg, t); + } - public void debug(Marker marker, String format, Object... arguments) { - recordEvent(Level.DEBUG, marker, format, arguments, null); - } + public boolean isInfoEnabled() { + return RECORD_ALL_EVENTS; + } - public void debug(Marker marker, String msg, Throwable t) { - recordEvent(Level.DEBUG, marker, msg, null, t); - } + public void info(String msg) { + recordEvent_0Args(Level.INFO, null, msg, null); + } - public boolean isInfoEnabled() { - return RECORD_ALL_EVENTS; - } + public void info(String format, Object arg) { + recordEvent_1Args(Level.INFO, null, format, arg); + } - public void info(String msg) { - recordEventwithoutMarkerArgArray(Level.INFO, msg, null, null); - } + public void info(String format, Object arg1, Object arg2) { + recordEvent2Args(Level.INFO, null, format, arg1, arg2); + } - public void info(String format, Object arg) { - recordEventwithoutMarkerArgArray(Level.INFO, format, new Object[] { arg }, null); - } + public void info(String format, Object... arguments) { + recordEventArgArray(Level.INFO, null, format, arguments); + } - public void info(String format, Object arg1, Object arg2) { - recordEventWithoutMarker2Args(Level.INFO, format, arg1, arg2); - } + public void info(String msg, Throwable t) { + recordEvent_0Args(Level.INFO, null, msg, t); + } - public void info(String format, Object... arguments) { - recordEventwithoutMarkerArgArray(Level.INFO, format, arguments, null); - } + public boolean isInfoEnabled(Marker marker) { + return RECORD_ALL_EVENTS; + } - public void info(String msg, Throwable t) { - recordEventwithoutMarkerArgArray(Level.INFO, msg, null, t); - } + public void info(Marker marker, String msg) { + recordEvent_0Args(Level.INFO, marker, msg, null); + } - public boolean isInfoEnabled(Marker marker) { - return RECORD_ALL_EVENTS; - } + public void info(Marker marker, String format, Object arg) { + recordEvent_1Args(Level.INFO, marker, format, arg); + } - public void info(Marker marker, String msg) { - recordEvent(Level.INFO, marker, msg, null, null); - } + public void info(Marker marker, String format, Object arg1, Object arg2) { + recordEvent2Args(Level.INFO, marker, format, arg1, arg2); + } - public void info(Marker marker, String format, Object arg) { - recordEvent(Level.INFO, marker, format, new Object[] { arg }, null); - } + public void info(Marker marker, String format, Object... arguments) { + recordEventArgArray(Level.INFO, marker, format, arguments); + } - public void info(Marker marker, String format, Object arg1, Object arg2) { - recordEvent2Args(Level.INFO, marker, format, arg1, arg2); - } + public void info(Marker marker, String msg, Throwable t) { + recordEvent_0Args(Level.INFO, marker, msg, t); - public void info(Marker marker, String format, Object... arguments) { - recordEvent(Level.INFO, marker, format, arguments, null); - } + } - public void info(Marker marker, String msg, Throwable t) { - recordEvent(Level.INFO, marker, msg, null, t); + public boolean isWarnEnabled() { + return RECORD_ALL_EVENTS; + } - } + public void warn(String msg) { + recordEvent_0Args(Level.WARN, null, msg, null); + } - public boolean isWarnEnabled() { - return RECORD_ALL_EVENTS; - } + public void warn(String format, Object arg) { + recordEvent_1Args(Level.WARN, null, format, arg); + } - public void warn(String msg) { - recordEventwithoutMarkerArgArray(Level.WARN, msg, null, null); - } - - public void warn(String format, Object arg) { - recordEventwithoutMarkerArgArray(Level.WARN, format, new Object[] { arg }, null); - - } - - public void warn(String format, Object arg1, Object arg2) { - recordEventWithoutMarker2Args(Level.WARN, format, arg1, arg2); - } - - public void warn(String format, Object... arguments) { - recordEventwithoutMarkerArgArray(Level.WARN, format, arguments, null); - } - - public void warn(String msg, Throwable t) { - recordEventwithoutMarkerArgArray(Level.WARN, msg, null, t); - } - - public boolean isWarnEnabled(Marker marker) { - return RECORD_ALL_EVENTS; - } - - public void warn(Marker marker, String msg) { - recordEvent(Level.WARN, marker, msg, null, null); - } - - public void warn(Marker marker, String format, Object arg) { - recordEvent(Level.WARN, marker, format, new Object[] { arg }, null); - } - - public void warn(Marker marker, String format, Object arg1, Object arg2) { - recordEvent2Args(Level.WARN, marker, format, arg1, arg2); - } - - public void warn(Marker marker, String format, Object... arguments) { - recordEvent(Level.WARN, marker, format, arguments, null); - } - - public void warn(Marker marker, String msg, Throwable t) { - recordEvent(Level.WARN, marker, msg, null, t); - } - - public boolean isErrorEnabled() { - return RECORD_ALL_EVENTS; - } - - public void error(String msg) { - recordEventwithoutMarkerArgArray(Level.ERROR, msg, null, null); - } - - public void error(String format, Object arg) { - recordEventwithoutMarkerArgArray(Level.ERROR, format, new Object[] { arg }, null); - - } - - public void error(String format, Object arg1, Object arg2) { - recordEventWithoutMarker2Args(Level.ERROR, format, arg1, arg2); - - } - - public void error(String format, Object... arguments) { - recordEventwithoutMarkerArgArray(Level.ERROR, format, arguments, null); - - } - - public void error(String msg, Throwable t) { - recordEventwithoutMarkerArgArray(Level.ERROR, msg, null, t); - } - - public boolean isErrorEnabled(Marker marker) { - return RECORD_ALL_EVENTS; - } - - public void error(Marker marker, String msg) { - recordEvent(Level.ERROR, marker, msg, null, null); - - } - - public void error(Marker marker, String format, Object arg) { - recordEvent(Level.ERROR, marker, format, new Object[] { arg }, null); - - } - - public void error(Marker marker, String format, Object arg1, Object arg2) { - recordEvent2Args(Level.ERROR, marker, format, arg1, arg2); - } - - public void error(Marker marker, String format, Object... arguments) { - recordEvent(Level.ERROR, marker, format, arguments, null); - } - - public void error(Marker marker, String msg, Throwable t) { - recordEvent(Level.ERROR, marker, msg, null, t); - } - - private void recordEventWithoutMarker2Args(Level level, String msg, Object arg1, Object arg2) { - recordEvent2Args(level, null, msg, arg1, arg2); - } - - private void recordEvent2Args(Level level, Marker marker, String msg, Object arg1, Object arg2) { - if (arg2 instanceof Throwable) { - recordEvent(level, marker, msg, new Object[] { arg1 }, (Throwable) arg2); - } else { - recordEvent(level, marker, msg, new Object[] { arg1, arg2 }, null); - } - } - - private void recordEventwithoutMarkerArgArray(Level level, String msg, Object[] args, Throwable throwable) { - recordEvent(level, null, msg, args, throwable); - } - - private void recordEvent(Level level, Marker marker, String msg, Object[] args, Throwable throwable) { - // System.out.println("recording logger:"+name+", msg:"+msg); - SubstituteLoggingEvent loggingEvent = new SubstituteLoggingEvent(); - loggingEvent.setTimeStamp(System.currentTimeMillis()); - loggingEvent.setLevel(level); - loggingEvent.setLogger(logger); - loggingEvent.setLoggerName(name); - loggingEvent.addMarker(marker); - loggingEvent.setMessage(msg); - loggingEvent.setThreadName(Thread.currentThread().getName()); - - // 1 and 2 args are covered by other methods - if (throwable == null && args != null && args.length > 2) { - Throwable throwableCandidate = MessageFormatter.getThrowableCandidate(args); - if(throwableCandidate != null) { - loggingEvent.setArgumentArray(MessageFormatter.trimmedCopy(args)); - loggingEvent.setThrowable(throwableCandidate); - } else { - loggingEvent.setArgumentArray(args); - loggingEvent.setThrowable(null); - } - } else { - loggingEvent.setArgumentArray(args); - loggingEvent.setThrowable(throwable); - } - - eventQueue.add(loggingEvent); - } + public void warn(String format, Object arg1, Object arg2) { + recordEvent2Args(Level.WARN, null, format, arg1, arg2); + } + + public void warn(String format, Object... arguments) { + recordEventArgArray(Level.WARN, null, format, arguments); + } + + public void warn(String msg, Throwable t) { + recordEvent_0Args(Level.WARN, null, msg, t); + } + + public boolean isWarnEnabled(Marker marker) { + return RECORD_ALL_EVENTS; + } + + public void warn(Marker marker, String msg) { + recordEvent_0Args(Level.WARN, marker, msg, null); + } + + public void warn(Marker marker, String format, Object arg) { + recordEvent_1Args(Level.WARN, marker, format, arg); + } + + public void warn(Marker marker, String format, Object arg1, Object arg2) { + recordEvent2Args(Level.WARN, marker, format, arg1, arg2); + } + + public void warn(Marker marker, String format, Object... arguments) { + recordEventArgArray(Level.WARN, marker, format, arguments); + } + + public void warn(Marker marker, String msg, Throwable t) { + recordEvent_0Args(Level.ERROR, marker, msg, t); + } + + public boolean isErrorEnabled() { + return RECORD_ALL_EVENTS; + } + + public void error(String msg) { + recordEvent_0Args(Level.ERROR, null, msg, null); + } + + public void error(String format, Object arg) { + recordEvent_1Args(Level.ERROR, null, format, arg); + } + + public void error(String format, Object arg1, Object arg2) { + recordEvent2Args(Level.ERROR, null, format, arg1, arg2); + } + + public void error(String format, Object... arguments) { + recordEventArgArray(Level.ERROR, null, format, arguments); + } + + public void error(String msg, Throwable t) { + recordEvent_0Args(Level.ERROR, null, msg, t); + } + + public boolean isErrorEnabled(Marker marker) { + return RECORD_ALL_EVENTS; + } + + public void error(Marker marker, String msg) { + recordEvent_0Args(Level.ERROR, marker, msg, null); + } + + public void error(Marker marker, String format, Object arg) { + recordEvent_1Args(Level.ERROR, marker, format, arg); + } + + public void error(Marker marker, String format, Object arg1, Object arg2) { + recordEvent2Args(Level.ERROR, marker, format, arg1, arg2); + } + + public void error(Marker marker, String format, Object... arguments) { + recordEventArgArray(Level.ERROR, marker, format, arguments); + } + + public void error(Marker marker, String msg, Throwable t) { + recordEvent_0Args(Level.ERROR, marker, msg, t); + } + + private void recordEvent_0Args(Level level, Marker marker, String msg, Throwable t) { + recordEvent(level, marker, msg, null, t); + } + + private void recordEvent_1Args(Level level, Marker marker, String msg, Object arg1) { + recordEvent(level, marker, msg, new Object[] { arg1 }, null); + } + + private void recordEvent2Args(Level level, Marker marker, String msg, Object arg1, Object arg2) { + if (arg2 instanceof Throwable) { + recordEvent(level, marker, msg, new Object[] { arg1 }, (Throwable) arg2); + } else { + recordEvent(level, marker, msg, new Object[] { arg1, arg2 }, null); + } + } + + private void recordEventArgArray(Level level, Marker marker, String msg, Object[] args) { + Throwable throwableCandidate = MessageFormatter.getThrowableCandidate(args); + if (throwableCandidate != null) { + Object[] trimmedCopy = MessageFormatter.trimmedCopy(args); + recordEvent(level, marker, msg, trimmedCopy, throwableCandidate); + } else { + recordEvent(level, marker, msg, args, null); + } + } + + + // WARNING: this method assumes that any throwable is priperly extracted + private void recordEvent(Level level, Marker marker, String msg, Object[] args, Throwable throwable) { + SubstituteLoggingEvent loggingEvent = new SubstituteLoggingEvent(); + loggingEvent.setTimeStamp(System.currentTimeMillis()); + loggingEvent.setLevel(level); + loggingEvent.setLogger(logger); + loggingEvent.setLoggerName(name); + loggingEvent.addMarker(marker); + loggingEvent.setMessage(msg); + loggingEvent.setThreadName(Thread.currentThread().getName()); + + loggingEvent.setArgumentArray(args); + loggingEvent.setThrowable(throwable); + + eventQueue.add(loggingEvent); + } } diff --git a/slf4j-api/src/test/java/org/slf4j/event/EventRecodingLoggerTest.java b/slf4j-api/src/test/java/org/slf4j/event/EventRecodingLoggerTest.java index 68abff0ea..e0cd6b04d 100644 --- a/slf4j-api/src/test/java/org/slf4j/event/EventRecodingLoggerTest.java +++ b/slf4j-api/src/test/java/org/slf4j/event/EventRecodingLoggerTest.java @@ -13,785 +13,513 @@ import static org.junit.Assert.*; public class EventRecodingLoggerTest { - private Queue queue; - private EventRecodingLogger logger; - private String message; - private Object param1; - private Object param2; - private Object param3; - private Object[] oneParam; - private Object[] twoParams; - private Object[] threeParams; - private Throwable exception; - private Marker marker; - - @Before - public void setUp() { - queue = new LinkedBlockingQueue<>(); - logger = new EventRecodingLogger(new SubstituteLogger("testLogger", queue, true), queue); - message = "Test message with 3 parameters {} {} {} {}"; - param1 = 1; - param2 = 2; - param3 = 3; - oneParam = new Object[] { param1 }; - twoParams = new Object[] { param1, param2 }; - threeParams = new Object[] { param1, param2, param3 }; - exception = new IllegalStateException("We just need an exception"); - marker = new BasicMarkerFactory().getMarker("testMarker"); - } - - @After - public void tearDown() { - assertTrue(queue.isEmpty()); - } - - @Test - public void traceMessage() { - logger.trace(message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, null, null); - } - - @Test - public void traceMessageOneParameter() { - logger.trace(message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, oneParam, null); - } - - @Test - public void traceMessageTwoParameters() { - logger.trace(message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, twoParams, null); - } - - @Test - public void traceMessageThreeParameters() { - logger.trace(message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, threeParams, null); - } - - @Test - public void traceMessageThrowable() { - logger.trace(message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, null, exception); - } - - @Test - public void traceMessageOneParameterThrowable() { - logger.trace(message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, oneParam, exception); - } - - @Test - public void traceMessageTwoParametersThrowable() { - logger.trace(message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, twoParams, exception); - } - - @Test - public void traceMessageThreeParametersThrowable() { - logger.trace(message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, threeParams, exception); - } - - @Test - public void traceMarkerMessage() { - logger.trace(marker, message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, null, null); - } - - @Test - public void traceMarkerMessageOneParameter() { - logger.trace(marker, message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, oneParam, null); - } - - @Test - public void traceMarkerMessageTwoParameters() { - logger.trace(marker, message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, twoParams, null); - } - - @Test - public void traceMarkerMessageThreeParameters() { - logger.trace(marker, message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, threeParams, null); - } - - @Test - public void traceMarkerMessageThrowable() { - logger.trace(marker, message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, null, exception); - } - - @Test - public void traceMarkerMessageOneParameterThrowable() { - logger.trace(marker, message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, oneParam, exception); - } - - @Test - public void traceMarkerMessageTwoParametersThrowable() { - logger.trace(marker, message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, twoParams, exception); - } - - @Test - public void traceMarkerMessageThreeParametersThrowable() { - logger.trace(marker, message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.TRACE, marker, threeParams, exception); - } - - @Test - public void debugMessage() { - logger.debug(message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, null, null); - } - - @Test - public void debugMessageOneParameter() { - logger.debug(message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, oneParam, null); - } - - @Test - public void debugMessageTwoParameters() { - logger.debug(message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, twoParams, null); - } - - @Test - public void debugMessageThreeParameters() { - logger.debug(message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, threeParams, null); - } - - @Test - public void debugMessageThrowable() { - logger.debug(message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, null, exception); - } - - @Test - public void debugMessageOneParameterThrowable() { - logger.debug(message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, oneParam, exception); - } - - @Test - public void debugMessageTwoParametersThrowable() { - logger.debug(message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, twoParams, exception); - } - - @Test - public void debugMessageThreeParametersThrowable() { - logger.debug(message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, threeParams, exception); - } - - @Test - public void debugMarkerMessage() { - logger.debug(marker, message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, null, null); - } - - @Test - public void debugMarkerMessageOneParameter() { - logger.debug(marker, message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, oneParam, null); - } - - @Test - public void debugMarkerMessageTwoParameters() { - logger.debug(marker, message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, twoParams, null); - } - - @Test - public void debugMarkerMessageThreeParameters() { - logger.debug(marker, message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, threeParams, null); - } - - @Test - public void debugMarkerMessageThrowable() { - logger.debug(marker, message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, null, exception); - } - - @Test - public void debugMarkerMessageOneParameterThrowable() { - logger.debug(marker, message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, oneParam, exception); - } - - @Test - public void debugMarkerMessageTwoParametersThrowable() { - logger.debug(marker, message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, twoParams, exception); - } - - @Test - public void debugMarkerMessageThreeParametersThrowable() { - logger.debug(marker, message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.DEBUG, marker, threeParams, exception); - } - - @Test - public void infoMessage() { - logger.info(message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, null, null); - } - - @Test - public void infoMessageOneParameter() { - logger.info(message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, oneParam, null); - } - - @Test - public void infoMessageTwoParameters() { - logger.info(message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, twoParams, null); - } - - @Test - public void infoMessageThreeParameters() { - logger.info(message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, threeParams, null); - } - - @Test - public void infoMessageThrowable() { - logger.info(message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, null, exception); - } - - @Test - public void infoMessageOneParameterThrowable() { - logger.info(message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, oneParam, exception); - } - - @Test - public void infoMessageTwoParametersThrowable() { - logger.info(message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, twoParams, exception); - } - - @Test - public void infoMessageThreeParametersThrowable() { - logger.info(message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, threeParams, exception); - } - - @Test - public void infoMarkerMessage() { - logger.info(marker, message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, null, null); - } - - @Test - public void infoMarkerMessageOneParameter() { - logger.info(marker, message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, oneParam, null); - } - - @Test - public void infoMarkerMessageTwoParameters() { - logger.info(marker, message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, twoParams, null); - } - - @Test - public void infoMarkerMessageThreeParameters() { - logger.info(marker, message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, threeParams, null); - } - - @Test - public void infoMarkerMessageThrowable() { - logger.info(marker, message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, null, exception); - } - - @Test - public void infoMarkerMessageOneParameterThrowable() { - logger.info(marker, message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, oneParam, exception); - } - - @Test - public void infoMarkerMessageTwoParametersThrowable() { - logger.info(marker, message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, twoParams, exception); - } - - @Test - public void infoMarkerMessageThreeParametersThrowable() { - logger.info(marker, message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.INFO, marker, threeParams, exception); - } - - @Test - public void warnMessage() { - logger.warn(message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, null, null); - } - - @Test - public void warnMessageOneParameter() { - logger.warn(message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, oneParam, null); - } - - @Test - public void warnMessageTwoParameters() { - logger.warn(message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, twoParams, null); - } - - @Test - public void warnMessageThreeParameters() { - logger.warn(message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, threeParams, null); - } - - @Test - public void warnMessageThrowable() { - logger.warn(message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, null, exception); - } - - @Test - public void warnMessageOneParameterThrowable() { - logger.warn(message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, oneParam, exception); - } - - @Test - public void warnMessageTwoParametersThrowable() { - logger.warn(message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, twoParams, exception); - } - - @Test - public void warnMessageThreeParametersThrowable() { - logger.warn(message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, threeParams, exception); - } - - @Test - public void warnMarkerMessage() { - logger.warn(marker, message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, null, null); - } - - @Test - public void warnMarkerMessageOneParameter() { - logger.warn(marker, message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, oneParam, null); - } - - @Test - public void warnMarkerMessageTwoParameters() { - logger.warn(marker, message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, twoParams, null); - } - - @Test - public void warnMarkerMessageThreeParameters() { - logger.warn(marker, message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, threeParams, null); - } - - @Test - public void warnMarkerMessageThrowable() { - logger.warn(marker, message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, null, exception); - } - - @Test - public void warnMarkerMessageOneParameterThrowable() { - logger.warn(marker, message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, oneParam, exception); - } - - @Test - public void warnMarkerMessageTwoParametersThrowable() { - logger.warn(marker, message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, twoParams, exception); - } - - @Test - public void warnMarkerMessageThreeParametersThrowable() { - logger.warn(marker, message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.WARN, marker, threeParams, exception); - } - - @Test - public void errorMessage() { - logger.error(message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, null, null); - } - - @Test - public void errorMessageOneParameter() { - logger.error(message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, oneParam, null); - } - - @Test - public void errorMessageTwoParameters() { - logger.error(message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, twoParams, null); - } - - @Test - public void errorMessageThreeParameters() { - logger.error(message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, threeParams, null); - } - - @Test - public void errorMessageThrowable() { - logger.error(message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, null, exception); - } - - @Test - public void errorMessageOneParameterThrowable() { - logger.error(message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, oneParam, exception); - } - - @Test - public void errorMessageTwoParametersThrowable() { - logger.error(message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, twoParams, exception); - } - - @Test - public void errorMessageThreeParametersThrowable() { - logger.error(message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, threeParams, exception); - } - - @Test - public void errorMarkerMessage() { - logger.error(marker, message); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, null, null); - } - - @Test - public void errorMarkerMessageOneParameter() { - logger.error(marker, message, param1); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, oneParam, null); - } - - @Test - public void errorMarkerMessageTwoParameters() { - logger.error(marker, message, param1, param2); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, twoParams, null); - } - - @Test - public void errorMarkerMessageThreeParameters() { - logger.error(marker, message, param1, param2, param3); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, threeParams, null); - } - - @Test - public void errorMarkerMessageThrowable() { - logger.error(marker, message, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, null, exception); - } - - @Test - public void errorMarkerMessageOneParameterThrowable() { - logger.error(marker, message, param1, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, oneParam, exception); - } - - @Test - public void errorMarkerMessageTwoParametersThrowable() { - logger.error(marker, message, param1, param2, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, twoParams, exception); - } - - @Test - public void errorMarkerMessageThreeParametersThrowable() { - logger.error(marker, message, param1, param2, param3, exception); - - SubstituteLoggingEvent event = queue.poll(); - - verifyMessage(event, Level.ERROR, marker, threeParams, exception); - } - - private void verifyMessage(SubstituteLoggingEvent event, Level level, Object[] arguments, Throwable exception) { - verifyMessage(event, level, null, arguments, exception); - } - - private void verifyMessage(SubstituteLoggingEvent event, Level level, Marker marker, Object[] arguments, Throwable exception) { - assertNotNull(event); - - if (marker == null) { - assertNull(event.getMarkers().get(0)); - } else { - assertEquals(marker, event.getMarkers().get(0)); - } - - assertEquals(message, event.getMessage()); - - if (arguments == null) { - assertNull(event.getArgumentArray()); - } else { - assertArrayEquals(arguments, event.getArgumentArray()); - } - - assertEquals(level, event.getLevel()); - - if (exception == null) { - assertNull(event.getThrowable()); - } else { - assertEquals(exception, event.getThrowable()); - } - } + private Queue queue; + private EventRecodingLogger logger; + private String message; + private Object param1; + private Object param2; + private Object param3; + private Object[] oneParam; + private Object[] twoParams; + private Object[] threeParams; + private Throwable exception; + private Marker marker; + + @Before + public void setUp() { + queue = new LinkedBlockingQueue<>(); + logger = new EventRecodingLogger(new SubstituteLogger("testLogger", queue, true), queue); + message = "Test message with 3 parameters {} {} {} {}"; + param1 = 1; + param2 = 2; + param3 = 3; + oneParam = new Object[] { param1 }; + twoParams = new Object[] { param1, param2 }; + threeParams = new Object[] { param1, param2, param3 }; + exception = new IllegalStateException("We just need an exception"); + marker = new BasicMarkerFactory().getMarker("testMarker"); + } + + @After + public void tearDown() { + assertTrue(queue.isEmpty()); + } + + @Test + public void singleMessage() { + for (Level level : Level.values()) { + singleMessageCheck(level); + } + } + + private void singleMessageCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message); + break; + case DEBUG: + logger.debug(message); + break; + case INFO: + logger.info(message); + break; + case WARN: + logger.warn(message); + break; + case ERROR: + logger.error(message); + break; + } + verifyMessageWithoutMarker(level, null, null); + } + + @Test + public void oneParameter() { + for (Level level : Level.values()) { + oneParameterCheck(level); + } + } + private void oneParameterCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message, param1); + break; + case DEBUG: + logger.debug(message, param1); + break; + case INFO: + logger.info(message, param1); + break; + case WARN: + logger.warn(message, param1); + break; + case ERROR: + logger.error(message, param1); + break; + } + verifyMessageWithoutMarker(level, oneParam, null); + } + + @Test + public void messageTwoParameters() { + for (Level level : Level.values()) { + messageTwoParametersCheck(level); + } + } + + private void messageTwoParametersCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message, param1, param2); + break; + case DEBUG: + logger.debug(message, param1, param2); + break; + case INFO: + logger.info(message, param1, param2); + break; + case WARN: + logger.warn(message, param1, param2); + break; + case ERROR: + logger.error(message, param1, param2); + break; + } + verifyMessageWithoutMarker(level, twoParams, null); + } + + @Test + public void traceMessageThreeParameters() { + for (Level level : Level.values()) { + threeParameterCheck(level); + } + } + + private void threeParameterCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message, param1, param2, param3); + break; + case DEBUG: + logger.debug(message, param1, param2, param3); + break; + case INFO: + logger.info(message, param1, param2, param3); + break; + case WARN: + logger.warn(message, param1, param2, param3); + break; + case ERROR: + logger.error(message, param1, param2, param3); + break; + } + verifyMessageWithoutMarker(level, threeParams, null); + } + + @Test + public void testMessageThrowable() { + for (Level level : Level.values()) { + throwableCheck(level); + } + } + + private void throwableCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message, exception); + break; + case DEBUG: + logger.debug(message, exception); + break; + case INFO: + logger.info(message, exception); + break; + case WARN: + logger.warn(message, exception); + break; + case ERROR: + logger.error(message, exception); + break; + } + verifyMessageWithoutMarker(level, null, exception); + } + + @Test + public void traceMessageOneParameterThrowable() { + for (Level level : Level.values()) { + oneParamThrowableCheck(level); + } + } + + private void oneParamThrowableCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message, param1, exception); + break; + case DEBUG: + logger.debug(message, param1, exception); + break; + case INFO: + logger.info(message, param1, exception); + break; + case WARN: + logger.warn(message, param1, exception); + break; + case ERROR: + logger.error(message, param1, exception); + break; + } + verifyMessageWithoutMarker(level, oneParam, exception); + } + + @Test + public void traceMessageTwoParametersThrowable() { + for (Level level : Level.values()) { + twoParamThrowableCheck(level); + } + } + + private void twoParamThrowableCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(message, param1, param2, exception); + break; + case DEBUG: + logger.debug(message, param1, param2, exception); + break; + case INFO: + logger.info(message, param1, param2, exception); + break; + case WARN: + logger.warn(message, param1, param2, exception); + break; + case ERROR: + logger.error(message, param1, param2, exception); + break; + } + verifyMessageWithoutMarker(level, twoParams, exception); + } + + @Test + public void testMessageThreeParametersThrowable() { + for (Level level : Level.values()) { + messageWith3ArgsPlusException(level); + } + } + + private void messageWith3ArgsPlusException(Level level) { + switch (level) { + case TRACE: + logger.trace(message, param1, param2, param3, exception); + break; + case DEBUG: + logger.debug(message, param1, param2, param3, exception); + break; + case INFO: + logger.info(message, param1, param2, param3, exception); + break; + case WARN: + logger.warn(message, param1, param2, param3, exception); + break; + case ERROR: + logger.error(message, param1, param2, param3, exception); + break; + } + verifyMessageWithoutMarker(level, threeParams, exception); + } + + @Test + public void markerMessage() { + for (Level level : Level.values()) { + markerMessageCheck(level); + } + } + private void markerMessageCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message); + break; + case DEBUG: + logger.debug(marker, message); + break; + case INFO: + logger.info(marker, message); + break; + case WARN: + logger.warn(marker, message); + break; + case ERROR: + logger.error(marker, message); + break; + } + verifyMessage(level, marker, null, null); + } + + @Test + public void markerMessageOneParameter() { + for (Level level : Level.values()) { + markerMessageOneParameter(level); + } + } + private void markerMessageOneParameter(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, param1); + break; + case DEBUG: + logger.debug(marker, message, param1); + break; + case INFO: + logger.info(marker, message, param1); + break; + case WARN: + logger.warn(marker, message, param1); + break; + case ERROR: + logger.error(marker, message, param1); + break; + } + verifyMessage(level, marker, oneParam, null); + } + + @Test + public void traceMarkerMessageTwoParameters() { + for (Level level : Level.values()) { + markerMessageTwoParameters(level); + } + } + + private void markerMessageTwoParameters(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, param1, param2); + break; + case DEBUG: + logger.debug(marker, message, param1, param2); + break; + case INFO: + logger.info(marker, message, param1, param2); + break; + case WARN: + logger.warn(marker, message, param1, param2); + break; + case ERROR: + logger.error(marker, message, param1, param2); + break; + } + verifyMessage(level, marker, twoParams, null); + } + + @Test + public void traceMarkerMessageThreeParameters() { + for (Level level : Level.values()) { + markerMessageThreeParameters(level); + } + } + + private void markerMessageThreeParameters(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, param1, param2, param3); + break; + case DEBUG: + logger.debug(marker, message, param1, param2, param3); + break; + case INFO: + logger.info(marker, message, param1, param2, param3); + break; + case WARN: + logger.warn(marker, message, param1, param2, param3); + break; + case ERROR: + logger.error(marker, message, param1, param2, param3); + break; + } + verifyMessage(level, marker, threeParams, null); + } + + @Test + public void markerMessageThrowable() { + for (Level level : Level.values()) { + markerMessageThrowable(level); + } + } + + private void markerMessageThrowable(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, exception); + break; + case DEBUG: + logger.debug(marker, message, exception); + break; + case INFO: + logger.info(marker, message, exception); + break; + case WARN: + logger.warn(marker, message, exception); + break; + case ERROR: + logger.error(marker, message, exception); + break; + } + verifyMessage(level, marker, null, exception); + } + + @Test + public void markerMessageOneParameterThrowable() { + for (Level level : Level.values()) { + markerMessageOneParameterThrowableCheck(level); + } + } + + private void markerMessageOneParameterThrowableCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, param1, exception); + break; + case DEBUG: + logger.debug(marker, message, param1, exception); + break; + case INFO: + logger.info(marker, message, param1, exception); + break; + case WARN: + logger.warn(marker, message, param1, exception); + break; + case ERROR: + logger.error(marker, message, param1, exception); + break; + } + verifyMessage(level, marker, oneParam, exception); + } + + @Test + public void traceMarkerMessageTwoParametersThrowable() { + for (Level level : Level.values()) { + markerMessageTwoParametersThrowableCheck(level); + } + } + + private void markerMessageTwoParametersThrowableCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, param1, param2, exception); + break; + case DEBUG: + logger.debug(marker, message, param1, param2, exception); + break; + case INFO: + logger.info(marker, message, param1, param2, exception); + break; + case WARN: + logger.warn(marker, message, param1, param2, exception); + break; + case ERROR: + logger.error(marker, message, param1, param2, exception); + break; + } + verifyMessage(level, marker, twoParams, exception); + } + + @Test + public void traceMarkerMessageThreeParametersThrowable() { + for (Level level : Level.values()) { + markerMessageThreeParametersThrowableCheck(level); + } + } + + private void markerMessageThreeParametersThrowableCheck(Level level) { + switch (level) { + case TRACE: + logger.trace(marker, message, param1, param2, param3, exception); + break; + case DEBUG: + logger.debug(marker, message, param1, param2, param3, exception); + break; + case INFO: + logger.info(marker, message, param1, param2, param3, exception); + break; + case WARN: + logger.warn(marker, message, param1, param2, param3, exception); + break; + case ERROR: + logger.error(marker, message, param1, param2, param3, exception); + break; + } + verifyMessage(level, marker, threeParams, exception); + } + + private void verifyMessageWithoutMarker(Level level, Object[] arguments, Throwable exception) { + verifyMessage(level, null, arguments, exception); + } + + private void verifyMessage(Level level, Marker marker, Object[] arguments, Throwable exception) { + + assertEquals("missing event: ", 1, queue.size()); + SubstituteLoggingEvent event = queue.poll(); + assertNotNull(event); + + if (marker == null) { + assertNull(event.getMarkers().get(0)); + } else { + assertEquals(marker, event.getMarkers().get(0)); + } + + assertEquals(message, event.getMessage()); + + if (arguments == null) { + assertNull(event.getArgumentArray()); + } else { + assertArrayEquals(arguments, event.getArgumentArray()); + } + + assertEquals("wrong level: ", level, event.getLevel()); + + if (exception == null) { + assertNull(event.getThrowable()); + } else { + assertEquals(exception, event.getThrowable()); + } + } }