Skip to content

Commit

Permalink
ensure entry exists in arquillian.xml after adding container to pom
Browse files Browse the repository at this point in the history
  • Loading branch information
mojavelinux committed Jul 19, 2013
1 parent 974defb commit 38e6cb4
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 4 deletions.
18 changes: 14 additions & 4 deletions src/main/java/org/jboss/forge/arquillian/ArquillianPlugin.java
Expand Up @@ -163,12 +163,22 @@ else if (testframework.equals("testng"))

ResourceFacet resources = project.getFacet(ResourceFacet.class);
FileResource<?> resource = (FileResource<?>) resources.getTestResourceFolder().getChild("arquillian.xml");
Node arquillianConfig = null;
if (!resource.exists())
{
Node arquillianConfig = createNewArquillianConfig();
// Add an empty container config
arquillianConfig.getOrCreate("container@qualifier=" + containerId);
resource.setContents(XMLParser.toXMLString(arquillianConfig));
arquillianConfig = createNewArquillianConfig();
}
else
{
arquillianConfig = XMLParser.parse(resource.getResourceInputStream());
}

// Make sure a container config exists for this container (otherwise activating it will fail)
Node containerConfig = arquillianConfig.getSingle("container@qualifier=" + containerId);
if (containerConfig == null)
{
arquillianConfig.createChild("container@qualifier=" + containerId);
resource.setContents(XMLParser.toXMLString(arquillianConfig));
}
}

Expand Down
11 changes: 11 additions & 0 deletions src/test/java/test/integration/PluginTest.java
Expand Up @@ -20,6 +20,8 @@
import org.jboss.forge.arquillian.ArquillianPlugin;
import org.jboss.forge.arquillian.container.Container;
import org.jboss.forge.maven.MavenCoreFacet;
import org.jboss.forge.parser.xml.Node;
import org.jboss.forge.parser.xml.XMLParser;
import org.jboss.forge.project.Project;
import org.jboss.forge.project.facets.ResourceFacet;
import org.jboss.forge.resources.FileResource;
Expand Down Expand Up @@ -87,6 +89,15 @@ private Project installContainer(final String container, final List<DependencyMa
assertNotNull("Verify that the plugin use a version property for junit",
pom.getProperties().get(ArquillianPlugin.JUNIT_VERSION_PROP_NAME));

ResourceFacet facet = project.getFacet(ResourceFacet.class);
FileResource<?> arquillianXml = facet.getTestResource("arquillian.xml");

assertThat(arquillianXml, is(notNullValue()));
assertThat(arquillianXml.exists(), is(true));

Node arquillianXmlRoot = XMLParser.parse(arquillianXml.getResourceInputStream());
assertThat(arquillianXmlRoot.getSingle("container@qualifier=" + container), is(notNullValue()));

return project;
}

Expand Down

0 comments on commit 38e6cb4

Please sign in to comment.