package org.apache.tuscany.databinding.json; import java.io.StringReader; import java.io.StringWriter; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLOutputFactory; import javax.xml.stream.XMLStreamReader; import javax.xml.stream.XMLStreamWriter; import junit.framework.Assert; import junit.framework.TestCase; import org.apache.axiom.om.OMElement; import org.apache.tuscany.databinding.json.axiom.JSON2OMElement; import org.json.JSONObject; public class JSONTransformerTestCase extends TestCase { private static final String IPO_XML = "" + "" + " " + " Helen Zoe" + " 47 Eden Street" + " Cambridge" + " CB1 1JR" + " " + " " + " Robert Smith" + " 8 Oak Avenue" + " Old Town" + " PA" + " 95819" + " " + " " + " " + " Lapis necklace" + " 1" + " 99.95" + " Want this for the holidays" + " 1999-12-05" + " " + " " + ""; private static final String JSON_STR = "{\"xsl:root\":{\"@xmlns\":{\"xsl\":\"http://foo.com\"},\"data\":{\"$\":\"my json string\"}}}"; public void testXML2JSON() throws Exception { XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(IPO_XML)); XMLStreamReader2JSON t1 = new XMLStreamReader2JSON(); JSONObject json = t1.transform(reader, null); Assert.assertNotNull(json); // Cannot round-trip as we hit a bug in Jettison /* JSON2XMLStreamReader t2 = new JSON2XMLStreamReader(); XMLStreamReader reader2 = t2.transform(json, null); StringWriter sw = new StringWriter(); XMLStreamWriter streamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(sw); new XMLStreamSerializer().serialize(reader2, streamWriter); streamWriter.flush(); System.out.println(sw.toString()); */ } public void testJSON2XML() throws Exception { JSON2XMLStreamReader t2 = new JSON2XMLStreamReader(); XMLStreamReader reader2 = t2.transform(new JSONObject(JSON_STR), null); StringWriter sw = new StringWriter(); XMLStreamWriter streamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(sw); new XMLStreamSerializer().serialize(reader2, streamWriter); streamWriter.flush(); Assert.assertTrue(sw.toString().contains("my json string")); } public void testJSON2OMElement() throws Exception { JSON2OMElement t1 = new JSON2OMElement(); OMElement element = t1.transform(new JSONObject(JSON_STR), null); StringWriter writer = new StringWriter(); element.serialize(writer); System.out.println(writer.toString()); } }