Skip to content

Commit 1236fa1

Browse files
Merge pull request #228 from big-andy-coates/generated-resources
Patch-in generated resources during testing
2 parents 5fadfd6 + 79d8996 commit 1236fa1

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

src/main/java/org/javamodularity/moduleplugin/tasks/TestTask.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,12 @@ private Stream<Path> buildPatchModulePathStream() {
115115
.map(File::toPath)
116116
.filter(Files::isDirectory);
117117

118-
return Stream.concat(classesFileStream, resourceFileStream);
118+
Stream<Path> additionalResourceFileStream = sourceSets.stream()
119+
.flatMap(sourceSet -> sourceSet.getOutput().getDirs().getFiles().stream())
120+
.map(File::toPath)
121+
.filter(Files::isDirectory);
122+
123+
return Stream.concat(Stream.concat(classesFileStream, resourceFileStream), additionalResourceFileStream);
119124
}
120125

121126
private TaskOption buildAddReadsOption(TestEngine testEngine) {

test-project-kotlin/greeter.provider.test/build.gradle.kts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,27 @@ modularity {
1111
val compileTestJava: JavaCompile by tasks.named("compileTestJava")
1212
val moduleOptions: org.javamodularity.moduleplugin.extensions.ModuleOptions by compileTestJava.extensions
1313
moduleOptions.addModules = listOf("jdk.unsupported")
14+
15+
val generatedResourcesDir = "generated/resources/test";
16+
17+
sourceSets {
18+
test {
19+
// Add additional output directory for generated resources.
20+
// See org.gradle.api.tasks.SourceSetOutput for more info.
21+
output.dir(layout.buildDirectory.dir(generatedResourcesDir))
22+
}
23+
}
24+
25+
val generateResources = tasks.register("generateResources") {
26+
doLast {
27+
val outputFile = layout.buildDirectory.file("$generatedResourcesDir/generated-resource.txt")
28+
outputFile.get().asFile.parentFile.mkdirs()
29+
outputFile.get().asFile.writeText("some content")
30+
31+
println("Resource file generated at: ${outputFile.get().asFile.absolutePath}")
32+
}
33+
}
34+
35+
tasks.test {
36+
dependsOn(generateResources)
37+
}

test-project-kotlin/greeter.provider.test/src/test/kotlin/tests/GreeterTest.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,12 @@ class GreeterTest {
1010
val greeter = GreeterLocator().findGreeter()
1111
assertFalse(greeter.hello().isBlank())
1212
}
13+
14+
@Test
15+
fun testGeneratedResource() {
16+
val resource = object: Any() {}.javaClass.getResourceAsStream("/generated-resource.txt")
17+
if (resource == null) {
18+
throw RuntimeException("Couldn't load generated resource")
19+
}
20+
}
1321
}

0 commit comments

Comments
 (0)