package org.jboss.shrinkwrap.resolver.impl.maven.embedded.invoker.equipped; import java.io.File; import java.util.Arrays; import java.util.Properties; import org.apache.maven.shared.invoker.DefaultInvocationRequest; import org.apache.maven.shared.invoker.DefaultInvoker; import org.apache.maven.shared.invoker.InvocationRequest; import org.apache.maven.shared.invoker.Invoker; import org.jboss.shrinkwrap.resolver.api.maven.embedded.BuiltProject; import org.jboss.shrinkwrap.resolver.api.maven.embedded.EmbeddedMaven; import org.jboss.shrinkwrap.resolver.impl.maven.embedded.pom.equipped.ResolverErrorOutputHandler; import org.jboss.shrinkwrap.resolver.impl.maven.embedded.pom.equipped.ResolverOutputHandler; import org.junit.Test; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.archiveNameModuleTwoParamKey; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.archiveNameModuleTwoParamValue; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.getPropertiesWithSkipTests; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.multiModuleactivateModulesParamKey; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.multiModuleactivateModulesParamValue; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.pathToMultiModulePom; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.verifyMavenVersion; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.verifyMultiModuleSample; import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.verifyMultiModuleSampleWasCleaned; /** * @author <a href="mailto:mjobanek@redhat.com">Matous Jobanek</a> */ public class InvokerEquippedEmbeddedMavenForMultiModuleSampleTestCase { @Test public void testMultiModuleSampleBuildWithMaven305() { InvocationRequest request = new DefaultInvocationRequest(); Invoker invoker = new DefaultInvoker(); request.setPomFile(new File(pathToMultiModulePom)); request.setGoals(Arrays.asList(new String[] { "install" })); Properties props = getPropertiesWithSkipTests(); props.put(multiModuleactivateModulesParamKey, multiModuleactivateModulesParamValue); props.put(archiveNameModuleTwoParamKey, archiveNameModuleTwoParamValue); request.setProperties(props); StringBuffer logBuffer = new StringBuffer(""); invoker.setOutputHandler(new ResolverOutputHandler(logBuffer)); invoker.setErrorHandler(new ResolverErrorOutputHandler(logBuffer)); request.setShowVersion(true); BuiltProject builtProject = EmbeddedMaven .withMavenInvokerSet(request, invoker) .useMaven3Version("3.0.5") .build(); builtProject.setMavenLog(logBuffer.toString()); verifyMavenVersion(builtProject, "3.0.5"); verifyMultiModuleSample(builtProject, true); } @Test public void testMultiModuleSampleCleanBuild() { InvocationRequest request = new DefaultInvocationRequest(); Invoker invoker = new DefaultInvoker(); request.setPomFile(new File(pathToMultiModulePom)); request.setGoals(Arrays.asList(new String[] { "clean" })); Properties props = getPropertiesWithSkipTests(); props.put(multiModuleactivateModulesParamKey, multiModuleactivateModulesParamValue); props.put(archiveNameModuleTwoParamKey, archiveNameModuleTwoParamValue); request.setProperties(props); BuiltProject builtProject = EmbeddedMaven .withMavenInvokerSet(request, invoker) .useMaven3Version("3.3.9") .build(); verifyMultiModuleSampleWasCleaned(builtProject); } @Test public void testMultiModuleSampleBuildWithoutModulesActivated() { InvocationRequest request = new DefaultInvocationRequest(); Invoker invoker = new DefaultInvoker(); request.setPomFile(new File(pathToMultiModulePom)); request.setGoals(Arrays.asList(new String[] { "clean", "package" })); Properties props = getPropertiesWithSkipTests(); props.put(archiveNameModuleTwoParamKey, archiveNameModuleTwoParamValue); request.setProperties(props); BuiltProject builtProject = EmbeddedMaven .withMavenInvokerSet(request, invoker) .useMaven3Version("3.3.9") .build(); verifyMultiModuleSample(builtProject, false); } }