diff --git a/pom.xml b/pom.xml index b4fbc23b..f4106adb 100644 --- a/pom.xml +++ b/pom.xml @@ -519,7 +519,7 @@ 5.11.0 - 2.1.0 + 2.2.0 diff --git a/src/test/java/com/github/valfirst/slf4jtest/LoggingEventTests.java b/src/test/java/com/github/valfirst/slf4jtest/LoggingEventTests.java index 9a00ac6b..37d37400 100644 --- a/src/test/java/com/github/valfirst/slf4jtest/LoggingEventTests.java +++ b/src/test/java/com/github/valfirst/slf4jtest/LoggingEventTests.java @@ -37,6 +37,8 @@ import java.util.stream.Stream; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledForJreRange; +import org.junit.jupiter.api.condition.JRE; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.Arguments; import org.junit.jupiter.params.provider.EnumSource; @@ -515,23 +517,47 @@ void printToStandardOutWithThrowable(StdOut stdOut) { @ParameterizedTest @StdIo @EnumSource(names = {"TRACE", "DEBUG", "INFO"}) - void printInfoAndBelow(Level level, StdOut stdOut, StdErr stdErr) { + @EnabledForJreRange(max = JRE.JAVA_10) // old JUnit Pioneer is used for Java 8-10 + void printInfoAndBelowOnJdkUpTo10(Level level, StdOut stdOut, StdErr stdErr) { LoggingEvent event = new LoggingEvent(level, "message with {}", "argument"); event.print(); assertThat(stdOut.capturedLines(), is(not(emptyArray()))); assertThat(stdErr.capturedLines(), is(arrayContaining(""))); } + @ParameterizedTest + @StdIo + @EnumSource(names = {"TRACE", "DEBUG", "INFO"}) + @EnabledForJreRange(min = JRE.JAVA_11) // new JUnit Pioneer is used for Java 11+ + void printInfoAndBelow(Level level, StdOut stdOut, StdErr stdErr) { + LoggingEvent event = new LoggingEvent(level, "message with {}", "argument"); + event.print(); + assertThat(stdOut.capturedLines(), is(not(emptyArray()))); + assertThat(stdErr.capturedLines(), is(emptyArray())); + } + @ParameterizedTest @StdIo @EnumSource(names = {"WARN", "ERROR"}) - void printWarnAndAbove(Level level, StdOut stdOut, StdErr stdErr) { + @EnabledForJreRange(max = JRE.JAVA_10) // old JUnit Pioneer is used for Java 8-10 + void printWarnAndAboveOnJdkUpTo10(Level level, StdOut stdOut, StdErr stdErr) { LoggingEvent event = new LoggingEvent(level, "message with {}", "argument"); event.print(); assertThat(stdErr.capturedLines(), is(not(emptyArray()))); assertThat(stdOut.capturedLines(), is(arrayContaining(""))); } + @ParameterizedTest + @StdIo + @EnumSource(names = {"WARN", "ERROR"}) + @EnabledForJreRange(min = JRE.JAVA_11) // new JUnit Pioneer is used for Java 11+ + void printWarnAndAbove(Level level, StdOut stdOut, StdErr stdErr) { + LoggingEvent event = new LoggingEvent(level, "message with {}", "argument"); + event.print(); + assertThat(stdErr.capturedLines(), is(not(emptyArray()))); + assertThat(stdOut.capturedLines(), is(emptyArray())); + } + @Test void nullArgument() { LoggingEvent event = new LoggingEvent(level, "message with null arg", null, null); diff --git a/src/test/java/com/github/valfirst/slf4jtest/TestLoggerTests.java b/src/test/java/com/github/valfirst/slf4jtest/TestLoggerTests.java index e815bd21..742d2082 100644 --- a/src/test/java/com/github/valfirst/slf4jtest/TestLoggerTests.java +++ b/src/test/java/com/github/valfirst/slf4jtest/TestLoggerTests.java @@ -10,6 +10,7 @@ import static java.util.Collections.singletonList; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.arrayContaining; +import static org.hamcrest.Matchers.emptyArray; import static org.hamcrest.Matchers.endsWith; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; @@ -41,6 +42,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.EnabledForJreRange; +import org.junit.jupiter.api.condition.JRE; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.NullSource; @@ -817,7 +820,8 @@ void printsWhenPrintLevelIsEqualToOrLessThanEventLevel(Level printLevel, StdOut @ParameterizedTest @EnumSource(names = {"WARN", "ERROR"}) @StdIo - void doesNotWhenPrintLevelGreaterThanEventLevel(Level printLevel, StdOut stdOut) { + @EnabledForJreRange(max = JRE.JAVA_10) // old JUnit Pioneer is used for Java 8-10 + void doesNotWhenPrintLevelGreaterThanEventLevelOnJdkUpTo10(Level printLevel, StdOut stdOut) { TestLoggerFactory.getInstance().setPrintLevel(printLevel); testLogger.info(MESSAGE); @@ -825,6 +829,18 @@ void doesNotWhenPrintLevelGreaterThanEventLevel(Level printLevel, StdOut stdOut) assertThat(stdOut.capturedLines(), is(arrayContaining(""))); } + @ParameterizedTest + @EnumSource(names = {"WARN", "ERROR"}) + @StdIo + @EnabledForJreRange(min = JRE.JAVA_11) // new JUnit Pioneer is used for Java 11+ + void doesNotWhenPrintLevelGreaterThanEventLevel(Level printLevel, StdOut stdOut) { + TestLoggerFactory.getInstance().setPrintLevel(printLevel); + + testLogger.info(MESSAGE); + + assertThat(stdOut.capturedLines(), is(emptyArray())); + } + @Test void doesNotCaptureWhenCaptureLevelGreaterThanEventLevel() { TestLoggerFactory.getInstance().setCaptureLevel(WARN);