From: Ray Lee Date: Thu, 28 Jul 2016 04:45:11 +0000 (-0700) Subject: DRYD-23: Implement test framework for XmlToJsonStreamConverter. X-Git-Url: https://git.aero2k.de/?a=commitdiff_plain;h=f3a69045ce4fe1bf1f77ae9a9f46e5dbf22597df;p=tmp%2Fjakarta-migration.git DRYD-23: Implement test framework for XmlToJsonStreamConverter. --- diff --git a/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java b/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java new file mode 100644 index 000000000..d872ebf29 --- /dev/null +++ b/services/common/src/test/java/org/collectionspace/services/common/xmljson/test/XmlToJsonStreamConverterTest.java @@ -0,0 +1,51 @@ +package org.collectionspace.services.common.xmljson.test; + +import static org.testng.Assert.assertEquals; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; + +import javax.xml.stream.XMLStreamException; + +import org.apache.commons.io.output.ByteArrayOutputStream; +import org.codehaus.jackson.JsonFactory; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.JsonParseException; +import org.codehaus.jackson.map.ObjectMapper; +import org.collectionspace.services.common.xmljson.XmlToJsonStreamConverter; +import org.testng.annotations.Test; + +public class XmlToJsonStreamConverterTest { + public final String FILE_PATH = "test-data/xmljson/"; + + private ObjectMapper mapper = new ObjectMapper(); + private JsonFactory jsonFactory = mapper.getJsonFactory(); + + @Test + public void testConvert() throws XMLStreamException, JsonParseException, IOException { + testConvert("record.xml", "record.json"); + } + + private void testConvert(String xmlFileName, String jsonFileName) throws XMLStreamException, JsonParseException, IOException { + ClassLoader classLoader = getClass().getClassLoader(); + File xmlFile = new File(classLoader.getResource(FILE_PATH + xmlFileName).getFile()); + File jsonFile = new File(classLoader.getResource(FILE_PATH + jsonFileName).getFile()); + + FileInputStream in = new FileInputStream(xmlFile); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + XmlToJsonStreamConverter converter = new XmlToJsonStreamConverter(in, out); + converter.convert(); + + JsonNode actualJson = parseJsonStream(out.toInputStream()); + JsonNode expectedJson = parseJsonStream(new FileInputStream(jsonFile)); + + assertEquals(actualJson, expectedJson); + } + + private JsonNode parseJsonStream(InputStream in) throws JsonParseException, IOException { + return jsonFactory.createJsonParser(in).readValueAsTree(); + } +} diff --git a/services/common/src/test/resources/test-data/xmljson/record.json b/services/common/src/test/resources/test-data/xmljson/record.json new file mode 100644 index 000000000..0d7273271 --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/record.json @@ -0,0 +1,3 @@ +{ + "foo": "bar" +} diff --git a/services/common/src/test/resources/test-data/xmljson/record.xml b/services/common/src/test/resources/test-data/xmljson/record.xml new file mode 100644 index 000000000..58ca7f67e --- /dev/null +++ b/services/common/src/test/resources/test-data/xmljson/record.xml @@ -0,0 +1,47 @@ + + + 123 + project + 2016-07-27T04:31:38.290Z + someone@collectionspace.org + 2016-07-27T04:31:38.648Z + user@collectionspace.org + /examples/2ece74b2-2053-458c-a252 + + + This is a scalar field value + + A value in a structured field + Another structured field value + + 123abc + A nested structured field value + + + + repeating scalar field value 1 + repeating scalar field value 2 + repeating scalar field value 3 + repeating scalar field value 4 + + + + Big Bird + yellow + + + Cookie Monster + blue + + + Elmo + 3 + + a + b + c + + + + +