@Override public final void debug(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.DEBUG)); }
@Override public final String toString() { final StringBuilder sb = new StringBuilder(getClass().getCanonicalName()).append(": ") .append(isSuccess() ? "success" : "failure").append('\n'); final List<ProcessingMessage> messages = Lists.newArrayList(this); if (!messages.isEmpty()) { sb.append("--- BEGIN MESSAGES ---\n"); for (final ProcessingMessage message: messages) sb.append(message); sb.append("--- END MESSAGES ---\n"); } return sb.toString(); } }
@Test(dataProvider = "getLogLevels") public void logThresholdIsRespected(final LogLevel logLevel) throws ProcessingException { final AbstractProcessingReport report = spy(new LogThreshold(logLevel)); final ProcessingMessage message = new ProcessingMessage(); // OK, that's ugly, but it works... final int count = LogLevel.NONE.ordinal() - logLevel.ordinal(); report.debug(message); report.info(message); report.warn(message); report.error(message); report.fatal(message); verify(report, times(count)).log(any(LogLevel.class), same(message)); }
/** * Main dispatch method * * <p>All messages logged go through this method. According to the report * configuration, the message will either be ignored, logged or raise an * exception.</p> * * @param message the message to log * @throws ProcessingException the message's level and report configuration * require that an exception be thrown */ protected final void dispatch(final ProcessingMessage message) throws ProcessingException { final LogLevel level = message.getLogLevel(); if (level.compareTo(exceptionThreshold) >= 0) throw message.asException(); if (level.compareTo(currentLevel) > 0) currentLevel = level; if (level.compareTo(logLevel) >= 0) log(level, message); }
/** * Main dispatch method * * <p>All messages logged go through this method. According to the report * configuration, the message will either be ignored, logged or raise an * exception.</p> * * @param message the message to log * @throws ProcessingException the message's level and report configuration * require that an exception be thrown */ protected final void dispatch(final ProcessingMessage message) throws ProcessingException { final LogLevel level = message.getLogLevel(); if (level.compareTo(exceptionThreshold) >= 0) throw message.asException(); if (level.compareTo(currentLevel) > 0) currentLevel = level; if (level.compareTo(logLevel) >= 0) log(level, message); }
@Override public final void error(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.ERROR)); }
@Test public void errorsAreCorrectlyReported() throws ProcessingException { final ArgumentCaptor<ProcessingMessage> captor = ArgumentCaptor.forClass(ProcessingMessage.class); final ObjectNode schema = FACTORY.objectNode(); schema.put(K2, ""); final SchemaTree tree = new CanonicalSchemaTree(SchemaKey.anonymousKey(), schema); final ValueHolder<SchemaTree> holder = ValueHolder.hold("schema", tree); processor.process(report, holder); verify(report).log(same(LogLevel.ERROR), captor.capture()); final ProcessingMessage msg = captor.getValue(); assertMessage(msg).hasMessage(ERRMSG); }
@Override public final String toString() { final StringBuilder sb = new StringBuilder(getClass().getCanonicalName()).append(": ") .append(isSuccess() ? "success" : "failure").append('\n'); final List<ProcessingMessage> messages = Lists.newArrayList(this); if (!messages.isEmpty()) { sb.append("--- BEGIN MESSAGES ---\n"); for (final ProcessingMessage message: messages) sb.append(message); sb.append("--- END MESSAGES ---\n"); } return sb.toString(); } }
@Override public final void fatal(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.FATAL)); }
/** * Main dispatch method * * <p>All messages logged go through this method. According to the report * configuration, the message will either be ignored, logged or raise an * exception.</p> * * @param message the message to log * @throws ProcessingException the message's level and report configuration * require that an exception be thrown */ protected final void dispatch(final ProcessingMessage message) throws ProcessingException { final LogLevel level = message.getLogLevel(); if (level.compareTo(exceptionThreshold) >= 0) throw message.asException(); if (level.compareTo(currentLevel) > 0) currentLevel = level; if (level.compareTo(logLevel) >= 0) log(level, message); }
@Override public final String toString() { final StringBuilder sb = new StringBuilder(getClass().getCanonicalName()).append(": ") .append(isSuccess() ? "success" : "failure").append('\n'); final List<ProcessingMessage> messages = Lists.newArrayList(this); if (!messages.isEmpty()) { sb.append("--- BEGIN MESSAGES ---\n"); for (final ProcessingMessage message: messages) sb.append(message); sb.append("--- END MESSAGES ---\n"); } return sb.toString(); } }
@Override public final void error(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.ERROR)); }
verify(report).log(same(LogLevel.WARNING), captor.capture());
@Override public final void warn(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.WARNING)); }
@Test(dataProvider = "notSchemas") public void syntaxProcessorYellsOnNonSchemas(final JsonNode node) throws ProcessingException { final ArgumentCaptor<ProcessingMessage> captor = ArgumentCaptor.forClass(ProcessingMessage.class); final SchemaTree tree = new CanonicalSchemaTree(SchemaKey.anonymousKey(), node); final ValueHolder<SchemaTree> holder = ValueHolder.hold("schema", tree); processor.process(report, holder); verify(report).log(same(LogLevel.ERROR), captor.capture()); final ProcessingMessage message = captor.getValue(); final NodeType type = NodeType.getNodeType(node); assertMessage(message) .hasMessage(BUNDLE.printf("core.notASchema", type)) .hasField("found", type); }
@Override public final void error(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.ERROR)); }
@Override public final void debug(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.DEBUG)); }
@Override public final void info(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.INFO)); }
@Override public final void fatal(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.FATAL)); }
@Override public final void warn(final ProcessingMessage message) throws ProcessingException { dispatch(message.setLogLevel(LogLevel.WARNING)); }