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.collectionspace.services.common.xmljson.XmlToJsonStreamConverter;
14 import org.testng.annotations.Test;
16 import com.fasterxml.jackson.core.JsonFactory;
17 import com.fasterxml.jackson.core.JsonParseException;
18 import com.fasterxml.jackson.databind.JsonNode;
19 import com.fasterxml.jackson.databind.ObjectMapper;
21 public class XmlToJsonStreamConverterTest {
22 public final String FILE_PATH = "test-data/xmljson/";
24 private ObjectMapper mapper = new ObjectMapper();
25 private JsonFactory jsonFactory = mapper.getFactory();
28 public void testConvert() throws XMLStreamException, JsonParseException, IOException {
29 testConvert("record");
30 testConvert("collectionobject");
31 testConvert("collectionobject-list");
32 testConvert("accountperms");
33 testConvert("permissions");
34 testConvert("vocabulary-items");
37 private void testConvert(String fileName) throws XMLStreamException, JsonParseException, IOException {
38 System.out.println("-------------------------------------------");
39 System.out.println("Converting " + fileName);
40 System.out.println("-------------------------------------------");
42 ClassLoader classLoader = getClass().getClassLoader();
43 File xmlFile = new File(classLoader.getResource(FILE_PATH + fileName + ".xml").getFile());
44 File jsonFile = new File(classLoader.getResource(FILE_PATH + fileName + ".json").getFile());
46 FileInputStream in = new FileInputStream(xmlFile);
47 ByteArrayOutputStream out = new ByteArrayOutputStream();
49 XmlToJsonStreamConverter converter = new XmlToJsonStreamConverter(in, out);
52 JsonNode actualJson = parseJsonStream(out.toInputStream());
53 JsonNode expectedJson = parseJsonStream(new FileInputStream(jsonFile));
55 System.out.println(actualJson.toString());
57 assertEquals(actualJson, expectedJson);
60 private JsonNode parseJsonStream(InputStream in) throws JsonParseException, IOException {
61 return jsonFactory.createParser(in).readValueAsTree();