forked from java9-modularity/gradle-modules-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCompileJavaTaskMutatorTest.java
More file actions
57 lines (45 loc) · 2.33 KB
/
CompileJavaTaskMutatorTest.java
File metadata and controls
57 lines (45 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package org.javamodularity.moduleplugin.tasks;
import org.gradle.api.Project;
import org.gradle.api.file.FileCollection;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.tasks.compile.JavaCompile;
import org.gradle.testfixtures.ProjectBuilder;
import org.javamodularity.moduleplugin.extensions.CompileModuleOptions;
import org.javamodularity.moduleplugin.extensions.DefaultModularityExtension;
import org.javamodularity.moduleplugin.extensions.PatchModuleExtension;
import org.junit.jupiter.api.Test;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
class CompileJavaTaskMutatorTest {
@SuppressWarnings("deprecation")
@Test
void modularizeJavaCompileTask() {
// given
Project project = ProjectBuilder.builder().withProjectDir(new File("test-project/")).build();
project.getPlugins().apply("java");
JavaCompile compileJava = (JavaCompile) project.getTasks().getByName(JavaPlugin.COMPILE_JAVA_TASK_NAME);
FileCollection classpath = project.files("."); // we need anything on classpath
compileJava.setClasspath(classpath);
CompileModuleOptions moduleOptions = compileJava.getExtensions()
.create("moduleOptions", CompileModuleOptions.class, project);
project.getExtensions().add("moduleName", getClass().getName());
project.getExtensions().create("patchModules", PatchModuleExtension.class);
project.getExtensions().create("modularity", DefaultModularityExtension.class, project);
CompileJavaTaskMutator mutator = new CompileJavaTaskMutator(project, compileJava.getClasspath(), moduleOptions);
// when
mutator.modularizeJavaCompileTask(compileJava);
// then
List<String> twoLastArguments = twoLastCompilerArgs(compileJava);
assertEquals(
Arrays.asList("--module-path", classpath.getAsPath()),
twoLastArguments,
"Two last arguments should be setting module path to the current compileJava task classpath");
}
private List<String> twoLastCompilerArgs(JavaCompile compileJava) {
List<String> allCompilerArgs = compileJava.getOptions().getAllCompilerArgs();
int size = allCompilerArgs.size();
return allCompilerArgs.subList(size - 2, size);
}
}