@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)); }