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.getPropertiesWithSkipTests;
import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.pathToWarSamplePom;
import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.verifyMavenVersion;
import static org.jboss.shrinkwrap.resolver.impl.maven.embedded.Utils.verifyWarSampleWithSources;
import static org.junit.Assert.assertEquals;
/**
* @author <a href="mailto:mjobanek@redhat.com">Matous Jobanek</a>
*/
public class InvokerEquippedEmbeddedMavenForWarSampleTestCase {
@Test
public void testWarSampleBuildWithMaven310() {
InvocationRequest request = new DefaultInvocationRequest();
Invoker invoker = new DefaultInvoker();
request.setPomFile(new File(pathToWarSamplePom));
request.setGoals(Arrays.asList(new String[] { "clean", "package", "source:jar" }));
Properties props = getPropertiesWithSkipTests();
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.1.0")
.build();
builtProject.setMavenLog(logBuffer.toString());
verifyWarSampleWithSources(builtProject);
verifyMavenVersion(builtProject, "3.1.0");
}
@Test(expected = IllegalStateException.class)
public void testIfWarSampleBuildFailsWithException() {
InvocationRequest request = new DefaultInvocationRequest();
Invoker invoker = new DefaultInvoker();
request.setPomFile(new File(pathToWarSamplePom));
request.setGoals(Arrays.asList(new String[] { "clean", "package" }));
request.setProfiles(Arrays.asList(new String[] { "failing" }));
request.setProperties(getPropertiesWithSkipTests());
BuiltProject builtProject = EmbeddedMaven
.withMavenInvokerSet(request, invoker)
.build();
}
@Test
public void testIfWarSampleBuildFailsWithoutException() {
InvocationRequest request = new DefaultInvocationRequest();
Invoker invoker = new DefaultInvoker();
request.setPomFile(new File(pathToWarSamplePom));
request.setGoals(Arrays.asList(new String[] { "clean", "package" }));
request.setProfiles(Arrays.asList(new String[] { "failing" }));
request.setProperties(getPropertiesWithSkipTests());
BuiltProject builtProject = EmbeddedMaven
.withMavenInvokerSet(request, invoker)
.ignoreFailure()
.build();
assertEquals(1, builtProject.getMavenBuildExitCode());
}
}