use of org.jdom.xpath.XPath in project maven-plugins by apache.
the class ComponentsXmlArchiverFileFilterTest method testAddToArchive_ShouldWriteComponentWithoutHintToFile.
public void testAddToArchive_ShouldWriteComponentWithoutHintToFile() throws IOException, ArchiverException, JDOMException {
final Xpp3Dom dom = createComponentDom(new ComponentDef("role", null, "impl"));
filter.components = new LinkedHashMap<String, Xpp3Dom>();
filter.components.put("role", dom);
final FileCatchingArchiver fca = new FileCatchingArchiver();
filter.finalizeArchiveCreation(fca);
assertEquals(ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH, fca.getDestFileName());
final SAXBuilder builder = new SAXBuilder(false);
final Document doc = builder.build(fca.getFile());
final XPath role = XPath.newInstance("//component[position()=1]/role/text()");
final XPath hint = XPath.newInstance("//component[position()=1]/role-hint/text()");
final XPath implementation = XPath.newInstance("//component[position()=1]/implementation/text()");
assertEquals("role", ((Text) role.selectSingleNode(doc)).getText());
assertNull(hint.selectSingleNode(doc));
assertEquals("impl", ((Text) implementation.selectSingleNode(doc)).getText());
}
use of org.jdom.xpath.XPath in project maven-plugins by apache.
the class ComponentsXmlArchiverFileFilterTest method testAddToArchive_ShouldWriteTwoComponentToFile.
public void testAddToArchive_ShouldWriteTwoComponentToFile() throws IOException, ArchiverException, JDOMException {
filter.components = new LinkedHashMap<String, Xpp3Dom>();
final Xpp3Dom dom = createComponentDom(new ComponentDef("role", "hint", "impl"));
filter.components.put("rolehint", dom);
final Xpp3Dom dom2 = createComponentDom(new ComponentDef("role", "hint2", "impl"));
filter.components.put("rolehint2", dom2);
final FileCatchingArchiver fca = new FileCatchingArchiver();
filter.finalizeArchiveCreation(fca);
assertEquals(ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH, fca.getDestFileName());
final SAXBuilder builder = new SAXBuilder(false);
final Document doc = builder.build(fca.getFile());
final XPath role = XPath.newInstance("//component[position()=1]/role/text()");
final XPath hint = XPath.newInstance("//component[position()=1]/role-hint/text()");
final XPath implementation = XPath.newInstance("//component[position()=1]/implementation/text()");
assertEquals("role", ((Text) role.selectSingleNode(doc)).getText());
assertEquals("hint", ((Text) hint.selectSingleNode(doc)).getText());
assertEquals("impl", ((Text) implementation.selectSingleNode(doc)).getText());
final XPath role2 = XPath.newInstance("//component[position()=2]/role/text()");
final XPath hint2 = XPath.newInstance("//component[position()=2]/role-hint/text()");
final XPath implementation2 = XPath.newInstance("//component[position()=2]/implementation/text()");
assertEquals("role", ((Text) role2.selectSingleNode(doc)).getText());
assertEquals("hint2", ((Text) hint2.selectSingleNode(doc)).getText());
assertEquals("impl", ((Text) implementation2.selectSingleNode(doc)).getText());
}
use of org.jdom.xpath.XPath in project maven-plugins by apache.
the class ComponentsXmlArchiverFileFilterTest method testAddToArchive_ShouldWriteTwoComponentToArchivedFile.
public void testAddToArchive_ShouldWriteTwoComponentToArchivedFile() throws IOException, ArchiverException, JDOMException {
filter.components = new LinkedHashMap<String, Xpp3Dom>();
final Xpp3Dom dom = createComponentDom(new ComponentDef("role", "hint", "impl"));
filter.components.put("rolehint", dom);
final Xpp3Dom dom2 = createComponentDom(new ComponentDef("role", "hint2", "impl"));
filter.components.put("rolehint2", dom2);
final ZipArchiver archiver = new ZipArchiver();
final File archiveFile = fileManager.createTempFile();
archiver.setDestFile(archiveFile);
final File descriptorFile = fileManager.createTempFile();
archiver.setArchiveFinalizers(Collections.<ArchiveFinalizer>singletonList(filter));
archiver.createArchive();
ZipFile zf = null;
FileOutputStream out = null;
try {
zf = new ZipFile(archiveFile);
final ZipEntry ze = zf.getEntry(ComponentsXmlArchiverFileFilter.COMPONENTS_XML_PATH);
assertNotNull(ze);
out = new FileOutputStream(descriptorFile);
IOUtil.copy(zf.getInputStream(ze), out);
out.close();
out = null;
zf.close();
zf = null;
} finally {
IOUtil.close(out);
try {
if (zf != null) {
zf.close();
}
} catch (final IOException e) {
// Suppressed.
}
}
final SAXBuilder builder = new SAXBuilder(false);
final Document doc = builder.build(descriptorFile);
final XPath role = XPath.newInstance("//component[position()=1]/role/text()");
final XPath hint = XPath.newInstance("//component[position()=1]/role-hint/text()");
final XPath implementation = XPath.newInstance("//component[position()=1]/implementation/text()");
assertEquals("role", ((Text) role.selectSingleNode(doc)).getText());
assertEquals("hint", ((Text) hint.selectSingleNode(doc)).getText());
assertEquals("impl", ((Text) implementation.selectSingleNode(doc)).getText());
final XPath role2 = XPath.newInstance("//component[position()=2]/role/text()");
final XPath hint2 = XPath.newInstance("//component[position()=2]/role-hint/text()");
final XPath implementation2 = XPath.newInstance("//component[position()=2]/implementation/text()");
assertEquals("role", ((Text) role2.selectSingleNode(doc)).getText());
assertEquals("hint2", ((Text) hint2.selectSingleNode(doc)).getText());
assertEquals("impl", ((Text) implementation2.selectSingleNode(doc)).getText());
}
Aggregations