This PR migrates all tests to JUnit 5. There are quite a lot of changes but they can be reviewed per commit:
The first commit adds all required JUnit 5 dependencies. I used the JUnit 5 BOM for convenience.
The next 8 commits ("Add XyzExtension as JUnit5 equivalent of XyzRule") replace the JUnit4 rules with JUnit5 extensions. All tests using these rules are migrated to JUnit 5.
The next two commits migrate all remaining tests to JUnit5 and eliminate all dependencies to JUnit4
The last commit reduces the visibility of all tests to package private. However, this requires opening the memory filesystem to the unnamed module during test execution. Otherwise JUnit (in the unnamed module on the classpath) won't have access to the tests (on the module path).
This PR migrates all tests to JUnit 5. There are quite a lot of changes but they can be reviewed per commit: