package org.jboss.windup.tests.application; import java.io.File; import java.util.ArrayList; import java.util.List; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.forge.arquillian.AddonDependencies; import org.jboss.forge.arquillian.AddonDependency; import org.jboss.forge.arquillian.archive.AddonArchive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.windup.graph.GraphContext; import org.jboss.windup.graph.service.GraphService; import org.jboss.windup.rules.apps.javaee.model.EjbDeploymentDescriptorModel; import org.jboss.windup.rules.apps.javaee.model.WebXmlModel; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; /** * @author <a href="mailto:jesse.sightler@gmail.com">Jesse Sightler</a> */ @RunWith(Arquillian.class) public class WindupMultiAppBasicTest extends WindupArchitectureTest { @Deployment @AddonDependencies({ @AddonDependency(name = "org.jboss.windup.graph:windup-graph"), @AddonDependency(name = "org.jboss.windup.reporting:windup-reporting"), @AddonDependency(name = "org.jboss.windup.exec:windup-exec"), @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java"), @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-java-ee"), @AddonDependency(name = "org.jboss.windup.rules.apps:windup-rules-tattletale"), @AddonDependency(name = "org.jboss.windup.tests:test-util"), @AddonDependency(name = "org.jboss.windup.config:windup-config-groovy"), @AddonDependency(name = "org.jboss.forge.furnace.container:cdi"), }) public static AddonArchive getDeployment() { return ShrinkWrap.create(AddonArchive.class) .addBeansXML() .addClass(WindupArchitectureTest.class) .addAsResource(new File("src/test/groovy/GroovyExampleRule.windup.groovy")); } @Test public void testRunWindupMedium() throws Exception { final String path1 = "../test-files/Windup1x-javaee-example.war"; final String path2 = "../test-files/maven-info-missing.war"; final String path3 = "../test-files/badly_named_app"; List<String> paths = new ArrayList<>(); paths.add(path1); paths.add(path2); paths.add(path3); try (GraphContext context = createGraphContext()) { super.runTest(context, paths, false); checkEJBDescriptors(context); checkWebXmls(context); } } private void checkEJBDescriptors(GraphContext context) { GraphService<EjbDeploymentDescriptorModel> ejbDescriptors = new GraphService<>(context,EjbDeploymentDescriptorModel.class); for (EjbDeploymentDescriptorModel ejbDeploymentDescriptorModel : ejbDescriptors.findAll()) { Assert.assertTrue(1 >= getIterableSize(ejbDeploymentDescriptorModel.getLinksToTransformedFiles())); } } private void checkWebXmls(GraphContext context) { GraphService<WebXmlModel> webXmls = new GraphService<>(context,WebXmlModel.class); for (WebXmlModel webXml : webXmls.findAll()) { Assert.assertTrue(1 >= getIterableSize(webXml.getLinksToTransformedFiles())); } } private int getIterableSize(Iterable<?> iterable) { int itemCount = 0; for (Object o : iterable) { itemCount++; } return itemCount; } }