diff --git a/src/main/java/org/jboss/forge/arquillian/ArquillianPlugin.java b/src/main/java/org/jboss/forge/arquillian/ArquillianPlugin.java index 3f7e8b5..995882d 100644 --- a/src/main/java/org/jboss/forge/arquillian/ArquillianPlugin.java +++ b/src/main/java/org/jboss/forge/arquillian/ArquillianPlugin.java @@ -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)); } } diff --git a/src/test/java/test/integration/PluginTest.java b/src/test/java/test/integration/PluginTest.java index 452fbec..33fbf4f 100644 --- a/src/test/java/test/integration/PluginTest.java +++ b/src/test/java/test/integration/PluginTest.java @@ -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; @@ -87,6 +89,15 @@ private Project installContainer(final String container, final List 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; }