Java Code Examples for org.custommonkey.xmlunit.XMLAssert#assertXpathEvaluatesTo()
The following examples show how to use
org.custommonkey.xmlunit.XMLAssert#assertXpathEvaluatesTo() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TransformersTest.java From proarc with GNU General Public License v3.0 | 6 votes |
/** * Tests mapping of fields 310a and 008/18 to {@code frequency@authority}. * See issue 118 and 181. */ @Test public void testMarcAsMods_FrequencyAuthority_Issue181() throws Exception { InputStream xmlIS = TransformersTest.class.getResourceAsStream("frequencyAuthority.xml"); assertNotNull(xmlIS); StreamSource streamSource = new StreamSource(xmlIS); Transformers mt = new Transformers(); try { byte[] contents = mt.transformAsBytes(streamSource, Transformers.Format.MarcxmlAsMods3); assertNotNull(contents); String xmlResult = new String(contents, "UTF-8"); // System.out.println(xmlResult); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(new HashMap() {{ put("m", ModsConstants.NS); }})); XMLAssert.assertXpathNotExists("/m:mods/m:originInfo/m:frequency[1]/@authority", xmlResult); XMLAssert.assertXpathEvaluatesTo("2x ročně", "/m:mods/m:originInfo/m:frequency[1]", xmlResult); XMLAssert.assertXpathEvaluatesTo("marcfrequency", "/m:mods/m:originInfo/m:frequency[2]/@authority", xmlResult); XMLAssert.assertXpathEvaluatesTo("Semiannual", "/m:mods/m:originInfo/m:frequency[2]", xmlResult); validateMods(new StreamSource(new ByteArrayInputStream(contents))); } finally { close(xmlIS); } }
Example 2
Source File: TransformersTest.java From proarc with GNU General Public License v3.0 | 6 votes |
/** * Test mapping of 072#7 $x to {@code subject/topic} and $a/$9 to {@code classification}. * See issue 303. */ @Test public void testMarcAsMods_Conspectus_Issue303() throws Exception { InputStream xmlIS = TransformersTest.class.getResourceAsStream("marc.xml"); assertNotNull(xmlIS); StreamSource streamSource = new StreamSource(xmlIS); Transformers mt = new Transformers(); try { byte[] contents = mt.transformAsBytes(streamSource, Transformers.Format.MarcxmlAsMods3); assertNotNull(contents); String xmlResult = new String(contents, "UTF-8"); // System.out.println(xmlResult); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(new HashMap() {{ put("m", ModsConstants.NS); }})); XMLAssert.assertXpathEvaluatesTo("Umění", "/m:mods/m:subject[@authority='Konspekt']/m:topic", xmlResult); XMLAssert.assertXpathEvaluatesTo("7.01/.09", "/m:mods/m:classification[@authority='udc' and @edition='Konspekt']", xmlResult); XMLAssert.assertXpathEvaluatesTo("21", "/m:mods/m:classification[@authority='Konspekt']", xmlResult); validateMods(new StreamSource(new ByteArrayInputStream(contents))); } finally { close(xmlIS); } }
Example 3
Source File: TransformersTest.java From proarc with GNU General Public License v3.0 | 6 votes |
/** * Tests mapping of field 264_4 to {@code originInfo}. * See issue 298. */ @Test public void testMarcAsMods_Mapping264_ind4_Issue298() throws Exception{ InputStream xmlIS = TransformersTest.class.getResourceAsStream("marc_originInfo_264_ind4.xml"); assertNotNull(xmlIS); StreamSource streamSource = new StreamSource(xmlIS); Transformers mt = new Transformers(); try { byte[] contents = mt.transformAsBytes(streamSource, Transformers.Format.MarcxmlAsMods3); assertNotNull(contents); String xmlResult = new String(contents, "UTF-8"); // System.out.println(xmlResult); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(new HashMap() {{ put("m", ModsConstants.NS); }})); XMLAssert.assertXpathExists("/m:mods/m:originInfo[@eventType='copyright']", xmlResult); XMLAssert.assertXpathEvaluatesTo("Praha","/m:mods/m:originInfo[@eventType='copyright']/m:place/m:placeTerm", xmlResult); XMLAssert.assertXpathEvaluatesTo("Albatros","/m:mods/m:originInfo[@eventType='copyright']/m:publisher", xmlResult); XMLAssert.assertXpathEvaluatesTo("2015", "/m:mods/m:originInfo[@eventType='copyright']/m:copyrightDate", xmlResult); validateMods(new StreamSource(new ByteArrayInputStream(contents))); } finally { close(xmlIS); } }
Example 4
Source File: DcStreamEditorTest.java From proarc with GNU General Public License v3.0 | 5 votes |
@Test public void testTransformation() throws Exception { ModsDefinition mods = ModsUtils.unmarshalModsType(new StreamSource(DcStreamEditorTest.class.getResource("periodical.xml").toExternalForm())); Transformer t = DcUtils.modsTransformer("model:periodical"); JAXBSource jaxbSource = new JAXBSource(ModsUtils.defaultMarshaller(false), new ObjectFactory().createMods(mods)); StringWriter dump = new StringWriter(); t.transform(jaxbSource, new StreamResult(dump)); String toXml = dump.toString(); System.out.println(toXml); HashMap<String, String> namespaces = new HashMap<String, String>(); namespaces.put("oai_dc", DcStreamEditor.DATASTREAM_FORMAT_URI); namespaces.put("dc", "http://purl.org/dc/elements/1.1/"); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(namespaces)); XMLAssert.assertXpathExists("/oai_dc:dc/dc:title[text()='main']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:title[text()='key']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:title[text()='alternative']", toXml); XMLAssert.assertXpathEvaluatesTo("3", "count(/oai_dc:dc/dc:title)", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:creator[text()='Boleslav']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:description[text()='poznámka']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:identifier[text()='uuid:40d13cb2-811f-468c-a6d3-1ad6b01f06f7']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:identifier[text()='isbn:0eaa6730']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:identifier[text()='issn-l:idIssn-l']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:identifier[text()='idWitEmptyType']", toXml); XMLAssert.assertXpathExists("/oai_dc:dc/dc:identifier[text()='idWithoutType']", toXml); // XXX needs more test }
Example 5
Source File: TransformersTest.java From proarc with GNU General Public License v3.0 | 5 votes |
/** * Tests mapping of 910a(sigla) as {@code <physicalLocation>} and 910b(signatura) as {@code <shelfLocator>}. */ @Test public void testMarcAsMods_Issue32() throws Exception { InputStream xmlIS = TransformersTest.class.getResourceAsStream("marc.xml"); assertNotNull(xmlIS); StreamSource streamSource = new StreamSource(xmlIS); Transformers mt = new Transformers(); try { byte[] contents = mt.transformAsBytes(streamSource, Transformers.Format.MarcxmlAsMods3); assertNotNull(contents); String xmlResult = new String(contents, "UTF-8"); // System.out.println(xmlResult); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(new HashMap() {{ put("m", ModsConstants.NS); }})); XMLAssert.assertXpathEvaluatesTo("HKA001", "/m:mods/m:location/m:physicalLocation[1]", xmlResult); XMLAssert.assertXpathEvaluatesTo("test sigla", "/m:mods/m:location/m:physicalLocation[2]", xmlResult); XMLAssert.assertXpathEvaluatesTo("2", "count(/m:mods/m:location/m:physicalLocation)", xmlResult); XMLAssert.assertXpathEvaluatesTo("54 487", "/m:mods/m:location/m:shelfLocator[1]", xmlResult); XMLAssert.assertXpathEvaluatesTo("test signatura", "/m:mods/m:location/m:shelfLocator[2]", xmlResult); XMLAssert.assertXpathEvaluatesTo("2", "count(/m:mods/m:location/m:shelfLocator)", xmlResult); validateMods(new StreamSource(new ByteArrayInputStream(contents))); } finally { close(xmlIS); } }
Example 6
Source File: TransformersTest.java From proarc with GNU General Public License v3.0 | 5 votes |
/** * Tests mapping of field 510 $c to {@code part/detail/number}. * See issue 306. */ @Test public void testMarcAsMods_RelatedItemPartDetailNumber_Issue306() throws Exception { InputStream xmlIS = TransformersTest.class.getResourceAsStream("marc_subject_65X_X9.xml"); assertNotNull(xmlIS); StreamSource streamSource = new StreamSource(xmlIS); Transformers mt = new Transformers(); try { byte[] contents = mt.transformAsBytes(streamSource, Transformers.Format.MarcxmlAsMods3); assertNotNull(contents); String xmlResult = new String(contents, "UTF-8"); // System.out.println(xmlResult); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(new HashMap() {{ put("m", ModsConstants.NS); }})); // test 510 4# $a Knihopis 1 $c K01416 XMLAssert.assertXpathExists("/m:mods/m:relatedItem[@type='isReferencedBy']" + "/m:titleInfo/m:title[text()='Knihopis 1']", xmlResult); XMLAssert.assertXpathEvaluatesTo("K01416", "/m:mods/m:relatedItem[@type='isReferencedBy']" + "/m:titleInfo/m:title[text()='Knihopis 1']/../../m:part/m:detail[@type='part']/m:number", xmlResult); // test 510 0# $a Knihopis 2 XMLAssert.assertXpathExists("/m:mods/m:relatedItem[@type='isReferencedBy']" + "/m:titleInfo/m:title[text()='Knihopis 2']", xmlResult); XMLAssert.assertXpathNotExists("/m:mods/m:relatedItem[@type='isReferencedBy']" + "/m:titleInfo/m:title[text()='Knihopis 2']/../../m:part", xmlResult); validateMods(new StreamSource(new ByteArrayInputStream(contents))); } finally { close(xmlIS); } }
Example 7
Source File: TransformersTest.java From proarc with GNU General Public License v3.0 | 5 votes |
/** * Tests mapping of field 787 to {@code relatedItem}. * See issue 313. */ @Test public void testMarcAsMods_RelatedItem_Issue313() throws Exception { InputStream xmlIS = TransformersTest.class.getResourceAsStream("marc_relatedItem_787.xml"); assertNotNull(xmlIS); StreamSource streamSource = new StreamSource(xmlIS); Transformers mt = new Transformers(); try { byte[] contents = mt.transformAsBytes(streamSource, Transformers.Format.MarcxmlAsMods3); assertNotNull(contents); String xmlResult = new String(contents, "UTF-8"); // System.out.println(xmlResult); XMLUnit.setXpathNamespaceContext(new SimpleNamespaceContext(new HashMap() {{ put("m", ModsConstants.NS); }})); // test 78708 |i Recenze na: |a Čeřovský, Jan |t Jak jsme zachraňovali svět aneb Půl století ve službách ochrany přírody |d Praha : Nakladatelství Academia, 2014 |4 kniha XMLAssert.assertXpathEvaluatesTo( "Jak jsme zachraňovali svět aneb Půl století ve službách ochrany přírody", "/m:mods/m:relatedItem[not(@type) and @displayLabel='Recenze na:']" + "/m:titleInfo/m:title/text()", xmlResult); XMLAssert.assertXpathEvaluatesTo( "Čeřovský, Jan", "/m:mods/m:relatedItem[not(@type) and @displayLabel='Recenze na:']" + "/m:name/m:namePart/text()", xmlResult); XMLAssert.assertXpathEvaluatesTo( "Praha : Nakladatelství Academia, 2014", "/m:mods/m:relatedItem[not(@type) and @displayLabel='Recenze na:']" + "/m:originInfo/m:publisher/text()", xmlResult); validateMods(new StreamSource(new ByteArrayInputStream(contents))); } finally { close(xmlIS); } }
Example 8
Source File: Kramerius4ExportTest.java From proarc with GNU General Public License v3.0 | 4 votes |
@Test public void testEmptyOcrExport() throws Exception { URL url = Kramerius4ExportTest.class.getResource("Kramerius4ExportTestPage.xml"); Path resPath = Paths.get(url.toURI()); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(resPath.toFile()); XPath xpath = XPathFactory.newInstance().newXPath(); NodeList nl = (NodeList)xpath .compile("//datastream[@ID='TEXT_OCR']/datastreamVersion/binaryContent") .evaluate(doc, XPathConstants.NODESET); Path emptyOcr = Files.createTempFile("proarcKramerius4ExportTest", null); emptyOcr.toFile().setReadable(true, false); emptyOcr.toFile().deleteOnExit(); for (int i = 0; i < nl.getLength(); i++) { Node binaryContentNode = nl.item(i); Element contentLocation = doc.createElement("contentLocation"); contentLocation.setAttribute("TYPE", "URL"); contentLocation.setAttribute("REF", emptyOcr.toUri().toString()); nl.item(i).getParentNode().replaceChild(contentLocation, binaryContentNode); } DOMSource domSource = new DOMSource(doc); StringWriter writer = new StringWriter(); StreamResult result = new StreamResult(writer); TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); transformer.setOutputProperty(OutputKeys.INDENT, "yes"); transformer.transform(domSource, result); writer.flush(); String xml = writer.toString(); fedora.ingest(xml); File output = temp.getRoot(); boolean hierarchy = true; String[] pids = {"uuid:f74f3cf3-f3be-4cac-95da-8e50331414a2"}; RemoteStorage storage = fedora.getRemoteStorage(); Kramerius4Export instance = new Kramerius4Export(storage, config); File target = instance.export(output, hierarchy, "export status", pids); assertNotNull(target); File foxml = ExportUtils.pidAsXmlFile(target, pids[0]); String foxmlAsURI = foxml.toURI().toASCIIString(); XMLAssert.assertXpathEvaluatesTo(DatatypeConverter.printBase64Binary(System.lineSeparator().getBytes()), streamXPath(StringEditor.OCR_ID) + "//f:binaryContent", new InputSource(foxmlAsURI)); // test ingest of exported object fedora.cleanUp(); fedora.ingest(foxml.toURI().toURL()); }
Example 9
Source File: Kramerius4ExportTest.java From proarc with GNU General Public License v3.0 | 4 votes |
/** * integration test */ @Test public void testExport() throws Exception { fedora.ingest(Kramerius4ExportTest.class.getResource("Kramerius4ExportTestPage.xml")); File output = temp.getRoot(); boolean hierarchy = true; String[] pids = {"uuid:f74f3cf3-f3be-4cac-95da-8e50331414a2"}; RemoteStorage storage = fedora.getRemoteStorage(); Kramerius4Export instance = new Kramerius4Export(storage, config); File target = instance.export(output, hierarchy, "export status", pids); assertNotNull(target); // check datastreams with xpath File foxml = ExportUtils.pidAsXmlFile(target, pids[0]); String foxmlSystemId = foxml.toURI().toASCIIString(); XMLAssert.assertXpathExists(streamXPath(ModsStreamEditor.DATASTREAM_ID), new InputSource(foxmlSystemId)); XMLAssert.assertXpathExists(streamXPath(DcStreamEditor.DATASTREAM_ID), new InputSource(foxmlSystemId)); XMLAssert.assertXpathExists(streamXPath(StringEditor.OCR_ID), new InputSource(foxmlSystemId)); XMLAssert.assertXpathExists(streamXPath(RelationEditor.DATASTREAM_ID), new InputSource(foxmlSystemId)); XMLAssert.assertXpathExists(streamXPath("IMG_FULL"), new InputSource(foxmlSystemId)); XMLAssert.assertXpathExists(streamXPath("IMG_PREVIEW"), new InputSource(foxmlSystemId)); XMLAssert.assertXpathExists(streamXPath("IMG_THUMB"), new InputSource(foxmlSystemId)); XMLAssert.assertXpathNotExists(streamXPath(BinaryEditor.RAW_ID), new InputSource(foxmlSystemId)); // check OAI ID XMLAssert.assertXpathExists("//oai:itemID", new InputSource(foxmlSystemId)); // check kramerius:file XMLAssert.assertXpathExists("//kramerius:file", new InputSource(foxmlSystemId)); // check exclusion of proarc-rels:hasDevice XMLAssert.assertXpathNotExists("//proarc-rels:hasDevice", new InputSource(foxmlSystemId)); // check MODS starts with modsCollection XMLAssert.assertXpathExists(streamXPath(ModsStreamEditor.DATASTREAM_ID) + "//f:xmlContent/mods:modsCollection/mods:mods", new InputSource(foxmlSystemId)); // check policy XMLAssert.assertXpathEvaluatesTo("policy:private", streamXPath(DcStreamEditor.DATASTREAM_ID) + "//dc:rights", new InputSource(foxmlSystemId)); XMLAssert.assertXpathEvaluatesTo("policy:private", streamXPath(RelationEditor.DATASTREAM_ID) + "//kramerius:policy", new InputSource(foxmlSystemId)); // test export status RelationEditor relationEditor = new RelationEditor(storage.find(pids[0])); assertNotNull(relationEditor.getExportResult()); // test ingest of exported object fedora.cleanUp(); fedora.ingest(foxml.toURI().toURL()); }