package io.takari.maven.plugins.compile;
import static io.takari.maven.testing.TestMavenRuntime.newParameter;
import java.io.File;
import org.apache.maven.project.MavenProject;
import org.junit.Rule;
import org.junit.Test;
import io.takari.maven.testing.TestResources;
public class MixedCompilerBackendTest {
@Rule
public final TestResources resources = new TestResources();
@Rule
public final CompileRule mojos = new CompileRule();
@Test
public void testClasspath() throws Exception {
// assert classpath caches are updated when project classes/test-classes changes
File basedir = resources.getBasedir("compile-incremental/classpath");
File moduleB = new File(basedir, "module-b");
File moduleA = new File(basedir, "module-a");
mojos.compile(moduleB, newParameter("proc", "only"), newParameter("compilerId", "jdt"));
mojos.assertBuildOutputs(moduleB, new String[0]);
mojos.compile(moduleB, newParameter("compilerId", "javac"));
mojos.assertBuildOutputs(moduleB, "target/classes/moduleb/ModuleB.class");
MavenProject projectA = mojos.readMavenProject(moduleA);
mojos.newDependency(new File(moduleB, "target/classes")).addTo(projectA);
mojos.compile(projectA, newParameter("compilerId", "jdt"));
mojos.assertBuildOutputs(moduleA, "target/classes/modulea/ModuleA.class");
}
}