1 package org.collectionspace.services.common.xmljson.test;
3 import static org.testng.Assert.assertEquals;
6 import java.io.FileInputStream;
7 import java.io.IOException;
8 import java.io.InputStream;
10 import javax.xml.stream.XMLStreamException;
12 import org.apache.commons.io.output.ByteArrayOutputStream;
13 import org.codehaus.jackson.JsonFactory;
14 import org.codehaus.jackson.JsonNode;
15 import org.codehaus.jackson.JsonParseException;
16 import org.codehaus.jackson.map.ObjectMapper;
17 import org.collectionspace.services.common.xmljson.XmlToJsonStreamConverter;
18 import org.testng.annotations.Test;
20 public class XmlToJsonStreamConverterTest {
21 public final String FILE_PATH = "test-data/xmljson/";
23 private ObjectMapper mapper = new ObjectMapper();
24 private JsonFactory jsonFactory = mapper.getJsonFactory();
27 public void testConvert() throws XMLStreamException, JsonParseException, IOException {
28 testConvert("record.xml", "record.json");
31 private void testConvert(String xmlFileName, String jsonFileName) throws XMLStreamException, JsonParseException, IOException {
32 ClassLoader classLoader = getClass().getClassLoader();
33 File xmlFile = new File(classLoader.getResource(FILE_PATH + xmlFileName).getFile());
34 File jsonFile = new File(classLoader.getResource(FILE_PATH + jsonFileName).getFile());
36 FileInputStream in = new FileInputStream(xmlFile);
37 ByteArrayOutputStream out = new ByteArrayOutputStream();
39 XmlToJsonStreamConverter converter = new XmlToJsonStreamConverter(in, out);
42 JsonNode actualJson = parseJsonStream(out.toInputStream());
43 JsonNode expectedJson = parseJsonStream(new FileInputStream(jsonFile));
45 assertEquals(actualJson, expectedJson);
48 private JsonNode parseJsonStream(InputStream in) throws JsonParseException, IOException {
49 return jsonFactory.createJsonParser(in).readValueAsTree();