desruisseaux commented on code in PR #3392:
URL: https://github.com/apache/maven-surefire/pull/3392#discussion_r3614257216
##########
maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/AbstractSurefireMojoJava7PlusTest.java:
##########
@@ -486,6 +487,96 @@ public void shouldJoinStrings() throws Exception {
assertThat(result).isEmpty();
}
+ @Test
+ public void shouldFindNestedModuleDescriptor() throws Exception {
+ // Create a temp directory structure:
target/classes/com.example/module-info.class
+ File tempDir =
Files.createTempDirectory("surefire-test-nested-module").toFile();
+ try {
+ File moduleDir = new File(tempDir, "com.example");
+ moduleDir.mkdirs();
+ new File(moduleDir, "module-info.class").createNewFile();
+
+ File result = invokeMethod(AbstractSurefireMojo.class,
"findNestedModuleDescriptor", tempDir);
+ assertThat(result).isNotNull();
+ assertThat(result.getName()).isEqualTo("com.example");
+ } finally {
+ // Cleanup
+ new File(new File(tempDir, "com.example"),
"module-info.class").delete();
+ new File(tempDir, "com.example").delete();
+ tempDir.delete();
+ }
+ }
+
+ @Test
+ public void shouldNotFindNestedModuleDescriptorInFlatLayout() throws
Exception {
+ // Create a temp directory structure without nested module-info.class
+ File tempDir =
Files.createTempDirectory("surefire-test-flat").toFile();
+ try {
+ File pkgDir = new File(tempDir, "com/example");
+ pkgDir.mkdirs();
+ new File(pkgDir, "Foo.class").createNewFile();
+
+ File result = invokeMethod(AbstractSurefireMojo.class,
"findNestedModuleDescriptor", tempDir);
+ assertThat(result).isNull();
+ } finally {
+ new File(new File(tempDir, "com/example"), "Foo.class").delete();
+ new File(tempDir, "com/example").delete();
+ new File(tempDir, "com").delete();
+ tempDir.delete();
+ }
+ }
+
+ @Test
+ public void shouldReturnNullForEmptyDirectory() throws Exception {
+ File tempDir =
Files.createTempDirectory("surefire-test-empty").toFile();
+ try {
+ File result = invokeMethod(AbstractSurefireMojo.class,
"findNestedModuleDescriptor", tempDir);
+ assertThat(result).isNull();
+ } finally {
+ tempDir.delete();
+ }
+ }
+
+ @Test
+ public void shouldNotTreatClassicModularLayoutAsNested() throws Exception {
+ // Classic layout with a root module descriptor: module "it" with root
package "it"
+ // produces target/classes/module-info.class and target/classes/it/ —
the package
+ // directory sharing the module name must NOT switch surefire to the
nested layout.
+ File tempDir =
+
Files.createTempDirectory("surefire-test-classic-modular").toFile();
+ try {
+ new File(tempDir, "module-info.class").createNewFile();
+ File pkgDir = new File(tempDir, "it");
+ pkgDir.mkdirs();
+ new File(pkgDir, "Main.class").createNewFile();
Review Comment:
Same comment as for `shouldFindNestedModuleDescriptor()`.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]