OpenImmo_1_2_6 extends XmlConverter<OpenImmoDocument, OpenImmoVersion> { protected void removePreiseChildElements(Document doc) throws JaxenException { List nodes = XmlUtils.newXPath( "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:kaufpreisnetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:kaufpreisbrutto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:hauptmietzinsnetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:pauschalmiete | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:betriebskostennetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:evbnetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtmietenetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtmietebrutto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtbelastungnetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtbelastungbrutto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:gesamtkostenprom2von | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:heizkostennetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:monatlichekostennetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:monatlichekostenbrutto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:nebenkostenprom2von | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:ruecklagenetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:sonstigekostennetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:sonstigemietenetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:summemietenetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:nettomieteprom2von | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:provisionnetto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:provisionbrutto | " + "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:richtpreisprom2", doc).selectNodes(doc); for (Object item : nodes) { Element node = (Element) item; Element parentNode = (Element) node.getParentNode(); parentNode.removeChild(node); } }  @Override OpenImmoVersion getVersion(); @Override void downgradeToPreviousVersion(OpenImmoDocument doc); @Override void upgradeFromPreviousVersion(OpenImmoDocument doc);  }
@Test public void testRemovePreiseChildElements() { String[] elements = new String[]{ "kaufpreisnetto", "kaufpreisbrutto", "hauptmietzinsnetto", "pauschalmiete", "betriebskostennetto", "evbnetto", "gesamtmietenetto", "gesamtmietebrutto", "gesamtbelastungnetto", "gesamtbelastungbrutto", "gesamtkostenprom2von", "heizkostennetto", "monatlichekostennetto", "monatlichekostenbrutto", "nebenkostenprom2von", "ruecklagenetto", "sonstigekostennetto", "sonstigemietenetto", "summemietenetto", "nettomieteprom2von", "provisionnetto", "provisionbrutto", "richtpreisprom2" }; try { Document doc = buildTransferDocumentForDowngrade(); int count; for (String element : elements) { count = XmlUtils.countNodes( "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:" + element, doc); Assert.assertEquals( "1 convertable <" + element + "> element available before conversion.", 1, count); } new OpenImmo_1_2_6().removePreiseChildElements(doc); for (String element : elements) { count = XmlUtils.countNodes( "/io:openimmo/io:anbieter/io:immobilie/io:preise/io:" + element, doc); Assert.assertEquals( "0 convertable <" + element + "> elements available after conversion.", 0, count); } } catch (Exception ex) { LOGGER.error("Test of OpenImmo_1_2_6.removePreiseChildElements failed!"); LOGGER.error("> " + ex.getLocalizedMessage(), ex); Assert.fail("Test of OpenImmo_1_2_6.removePreiseChildElements failed!"); } }