diff --git a/core/src/test/java/org/itsallcode/openfasttrace/core/importer/TestImporterService.java b/core/src/test/java/org/itsallcode/openfasttrace/core/importer/TestImporterService.java index 0047f4a7..cb67cc9a 100644 --- a/core/src/test/java/org/itsallcode/openfasttrace/core/importer/TestImporterService.java +++ b/core/src/test/java/org/itsallcode/openfasttrace/core/importer/TestImporterService.java @@ -15,9 +15,11 @@ import org.itsallcode.openfasttrace.api.importer.*; import org.itsallcode.openfasttrace.api.importer.input.InputFile; import org.itsallcode.openfasttrace.api.importer.input.RealFileInput; -import org.itsallcode.openfasttrace.testutil.OsDetector; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.EnabledOnOs; +import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentCaptor; import org.mockito.Captor; @@ -59,17 +61,17 @@ void beforeEach() } @Test + @EnabledOnOs(OS.WINDOWS) void testImportWindows() { - OsDetector.assumeRunningOnWindows(); runImporter(); assertThat(this.fileArg.getValue().getPath(), equalTo("dir\\file")); } @Test + @DisabledOnOs(OS.WINDOWS) void testImportUnix() { - OsDetector.assumeRunningOnUnix(); runImporter(); assertThat(this.fileArg.getValue().getPath(), equalTo("dir/file")); } diff --git a/core/src/test/java/org/itsallcode/openfasttrace/core/importer/tag/config/DescribedPathMatcherTest.java b/core/src/test/java/org/itsallcode/openfasttrace/core/importer/tag/config/DescribedPathMatcherTest.java index 682dc092..7e107ac1 100644 --- a/core/src/test/java/org/itsallcode/openfasttrace/core/importer/tag/config/DescribedPathMatcherTest.java +++ b/core/src/test/java/org/itsallcode/openfasttrace/core/importer/tag/config/DescribedPathMatcherTest.java @@ -12,9 +12,11 @@ import org.itsallcode.openfasttrace.api.importer.input.InputFile; import org.itsallcode.openfasttrace.api.importer.input.RealFileInput; import org.itsallcode.openfasttrace.api.importer.tag.config.DescribedPathMatcher; -import org.itsallcode.openfasttrace.testutil.OsDetector; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.EnabledOnOs; +import org.junit.jupiter.api.condition.OS; class DescribedPathMatcherTest { @@ -47,18 +49,18 @@ void testListBasedMatcherMatchesRelativePath() } @Test + @EnabledOnOs(OS.WINDOWS) void testListBasedMatcherIsCaseInsensitiveUnderWindows() { - OsDetector.assumeRunningOnWindows(); createListMatcher("rel/path"); assertMatches("REL/path", true); assertMatches("rel/PATH", true); } @Test + @DisabledOnOs(OS.WINDOWS) void testListBasedMatcherIsCaseSensitiveUnderUnix() { - OsDetector.assumeRunningOnUnix(); createListMatcher("rel/path"); assertMatches("REL/path", false); assertMatches("rel/PATH", false); @@ -83,17 +85,17 @@ void testListBasedMatcherMatchesAbsoluteWindowsStylePathWithForwardSlash() } @Test + @EnabledOnOs(OS.WINDOWS) void testListBasedMatcherMatchesAbsoluteWindowsStylePathWithForwardSlashWindows() { - OsDetector.assumeRunningOnWindows(); createListMatcher("C:/abs/path"); assertMatches("C:\\abs\\path", true); } @Test + @DisabledOnOs(OS.WINDOWS) void testListBasedMatcherMatchesAbsoluteWindowsStylePathWithForwardSlashUnix() { - OsDetector.assumeRunningOnUnix(); createListMatcher("C:/abs/path"); assertMatches("C:\\abs\\path", false); } @@ -107,18 +109,18 @@ void testListBasedMatcherMatchesAbsoluteWindowsStylePathWithBackslash() } @Test + @DisabledOnOs(OS.WINDOWS) void testListBasedMatcherMatchesAbsoluteWindowsStylePathWithBackslashUnix() { - OsDetector.assumeRunningOnUnix(); createListMatcher("C:\\abs\\path"); assertMatches("C:/abs/path", false); assertMatches("C:\\abs\\path\\", false); } @Test + @EnabledOnOs(OS.WINDOWS) void testListBasedMatcherMatchesAbsoluteWindowsStylePathWithBackslashWindows() { - OsDetector.assumeRunningOnWindows(); createListMatcher("C:\\abs\\path"); assertMatches("C:/abs/path", true); assertMatches("C:\\abs\\path\\", true); diff --git a/doc/changes/changes_4.6.0.md b/doc/changes/changes_4.6.0.md index b5e30ec4..a37ce33e 100644 --- a/doc/changes/changes_4.6.0.md +++ b/doc/changes/changes_4.6.0.md @@ -12,4 +12,5 @@ We moved some GitHub action permissions from workflow-level to job-level. ## Refactoring -* #543: Made `CliException` a `RuntimeException` \ No newline at end of file +* #546: Replaced `OsDetector` with JUnit5's `EnabledOnOs` annotation. +* #543: Made `CliException` a `RuntimeException` diff --git a/product/src/test/java/org/itsallcode/openfasttrace/report/html/TestHtmlReportCssInlining.java b/product/src/test/java/org/itsallcode/openfasttrace/report/html/TestHtmlReportCssInlining.java index 8c0ce891..57afca09 100644 --- a/product/src/test/java/org/itsallcode/openfasttrace/report/html/TestHtmlReportCssInlining.java +++ b/product/src/test/java/org/itsallcode/openfasttrace/report/html/TestHtmlReportCssInlining.java @@ -14,8 +14,9 @@ import org.itsallcode.openfasttrace.report.html.view.ViewableContainer; import org.itsallcode.openfasttrace.report.html.view.html.HtmlViewFactory; import org.itsallcode.openfasttrace.testutil.AbstractFileBasedTest; -import org.itsallcode.openfasttrace.testutil.OsDetector; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.io.TempDir; class TestHtmlReportCssInlining extends AbstractFileBasedTest @@ -48,9 +49,9 @@ void testInliningNonExistentCssThrowsException() throws URISyntaxException, Malf } @Test + @DisabledOnOs(OS.WINDOWS) void testInliningUnreadableCssThrowsException(@TempDir final Path tempDir) throws IOException { - OsDetector.assumeRunningOnUnix(); final File cssFile = tempDir.resolve("test.css").toFile(); cssFile.setReadable(false); final HtmlViewFactory factory = HtmlViewFactory.create(new ByteArrayOutputStream(), cssFile.toURI().toURL(), diff --git a/reporter/html/src/test/java/org/itsallcode/openfasttrace/report/html/view/html/TestOriginLinkFormatter.java b/reporter/html/src/test/java/org/itsallcode/openfasttrace/report/html/view/html/TestOriginLinkFormatter.java index 0c895b52..89398ef6 100644 --- a/reporter/html/src/test/java/org/itsallcode/openfasttrace/report/html/view/html/TestOriginLinkFormatter.java +++ b/reporter/html/src/test/java/org/itsallcode/openfasttrace/report/html/view/html/TestOriginLinkFormatter.java @@ -6,8 +6,10 @@ import static org.itsallcode.openfasttrace.report.html.view.html.OriginLinkFormatter.formatAsSpan; import org.itsallcode.openfasttrace.api.core.Location; -import org.itsallcode.openfasttrace.testutil.OsDetector; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.condition.DisabledOnOs; +import org.junit.jupiter.api.condition.EnabledOnOs; +import org.junit.jupiter.api.condition.OS; class TestOriginLinkFormatter { @@ -66,33 +68,33 @@ void testLongerHttpLink() } @Test + @DisabledOnOs(OS.WINDOWS) void testFormatRegularAbsoluteUnixPath() { - OsDetector.assumeRunningOnUnix(); assertPathAndLineRenderedToSpan("/foo/bar/baz", 1111, "/foo/bar/baz:1111"); } @Test + @EnabledOnOs(OS.WINDOWS) void testFormatRegularAbsoluteWindowsPath() { - OsDetector.assumeRunningOnWindows(); assertPathAndLineRenderedToSpan("C:\\foo\\bar\\baz", 1111, "C:\\foo\\bar\\baz:1111"); } @Test + @EnabledOnOs(OS.LINUX) void testFormatAbsoluteUnixPathWithSpecialCharactersLinux() { - OsDetector.assumeRunningOnLinux(); assertPathAndLineRenderedToSpan("/fo o/bär/baz", 12345678, "/fo o/bär/baz:12345678"); } @Test + @EnabledOnOs(OS.MAC) void testFormatAbsoluteUnixPathWithSpecialCharactersMacOs() { - OsDetector.assumeRunningOnMacOs(); assertPathAndLineRenderedToSpan("/fo o/bär/baz", 12345678, "/fo o/bär/baz:12345678"); } diff --git a/testutil/src/main/java/org/itsallcode/openfasttrace/testutil/OsCheck.java b/testutil/src/main/java/org/itsallcode/openfasttrace/testutil/OsCheck.java deleted file mode 100644 index e2712dd3..00000000 --- a/testutil/src/main/java/org/itsallcode/openfasttrace/testutil/OsCheck.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.itsallcode.openfasttrace.testutil; - -import java.util.Locale; - -/** - * Helper class to check the operating system this Java VM runs in. - *
- * please keep the notes below as a pseudo-license: - *
- *- * http://stackoverflow.com/questions/228477/how-do-i-programmatically-determine-operating-system-in-java - *
- *- * compare to: - *
- *