Skip to content

Commit 86236a0

Browse files
committed
Extend test coverage
1 parent de52ab9 commit 86236a0

File tree

2 files changed

+35
-3
lines changed

2 files changed

+35
-3
lines changed

src/main/java/org/gradlex/javamodule/dependencies/internal/utils/ModuleInfoCache.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626

2727
import javax.inject.Inject;
2828
import java.io.File;
29+
import java.nio.file.Path;
2930
import java.nio.file.Paths;
3031
import java.util.HashMap;
3132
import java.util.Map;
@@ -77,7 +78,8 @@ public ModuleInfo put(File projectRoot, String moduleInfoPath, String artifact,
7778
if (maybePutModuleInfo(folder, providers)) {
7879
ModuleInfo thisModuleInfo = moduleInfo.get(folder);
7980
moduleNameToProjectPath.put(thisModuleInfo.getModuleName(), ":" + artifact);
80-
String capabilitySuffix = sourceSetToCapabilitySuffix(Paths.get(moduleInfoPath).getParent().getFileName().toString());
81+
Path parentDirectory = Paths.get(moduleInfoPath).getParent();
82+
String capabilitySuffix = parentDirectory == null ? null : sourceSetToCapabilitySuffix(parentDirectory.getFileName().toString());
8183
if (capabilitySuffix != null) {
8284
if (group.isPresent()) {
8385
moduleNameToCapability.put(thisModuleInfo.getModuleName(), group.get() + ":" + artifact + "-" + capabilitySuffix);

src/test/groovy/org/gradlex/javamodule/dependencies/test/initialization/SettingsPluginTest.groovy

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,10 @@ class SettingsPluginTest extends Specification {
2424
settingsFile << '''
2525
javaModules {
2626
module("app") { plugin("application") }
27-
module("lib") { plugin("java-library") }
27+
module("lib") {
28+
plugin("java-library")
29+
artifact = "lib-x"
30+
}
2831
}
2932
'''
3033
libModuleInfoFile << 'module abc.lib { }'
@@ -39,7 +42,7 @@ class SettingsPluginTest extends Specification {
3942

4043
then:
4144
result.task(":app:compileJava").outcome == SUCCESS
42-
result.task(":lib:compileJava").outcome == SUCCESS
45+
result.task(":lib-x:compileJava").outcome == SUCCESS
4346
}
4447

4548
def "finds all modules in a directory"() {
@@ -135,4 +138,31 @@ class SettingsPluginTest extends Specification {
135138
result.task(":compileJava").outcome == NO_SOURCE
136139
}
137140

141+
def 'can have module-info in custom location'() {
142+
given:
143+
settingsFile << '''
144+
javaModules {
145+
module("app") { plugin("application") }
146+
module("lib") {
147+
plugin("java-library")
148+
moduleInfoPaths.add("src")
149+
}
150+
}
151+
'''
152+
libBuildFile << 'sourceSets.main { java.setSrcDirs(listOf("src")) }'
153+
file("lib/src/module-info.java") << 'module abc.lib { }'
154+
appModuleInfoFile << '''
155+
module org.gradlex.test.app {
156+
requires abc.lib;
157+
}
158+
'''
159+
160+
when:
161+
def result = runner(':app:compileJava').build()
162+
163+
then:
164+
result.task(":app:compileJava").outcome == SUCCESS
165+
result.task(":lib:compileJava").outcome == SUCCESS
166+
}
167+
138168
}

0 commit comments

Comments
 (0)