package com.bagri.core.server.api.df.json; import static com.bagri.core.Constants.pn_log_level; import static com.bagri.core.Constants.pn_schema_builder_pretty; import static org.junit.Assert.*; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStream; import java.util.List; import java.util.Properties; import org.junit.BeforeClass; import org.junit.Test; import com.bagri.core.model.Data; import com.bagri.core.server.api.ContentHandler; import com.bagri.core.server.api.ModelManagement; import com.bagri.core.server.api.df.json.JsonpParser; import com.bagri.core.server.api.df.xml.XmlBuilder; import com.bagri.core.server.api.df.xml.XmlHandler; import com.bagri.core.server.api.impl.ModelManagementImpl; public class JsonpParserTest { private static String json = "{\n" + " \"firstName\": \"John\",\n" + " \"lastName\": \"Smith\",\n" + " \"age\": 25,\n" + " \"address\": {\n" + " \"streetAddress\": \"21 2nd Street\",\n" + " \"city\": \"New York\",\n" + " \"state\": \"NY\",\n" + " \"postalCode\": \"10021\"\n" + " },\n" + " \"phoneNumber\": [\n" + " {\n" + " \"type\": \"home\",\n" + " \"number\": \"212 555-1234\"\n" + " },\n" + " {\n" + " \"type\": \"fax\",\n" + " \"number\": \"646 555-4567\"\n" + " }\n" + " ],\n" + " \"gender\": {\n" + " \"type\": \"male\"\n" + " }\n" + "}"; @BeforeClass public static void setUpBeforeClass() throws Exception { System.setProperty("logback.configurationFile", "test_logging.xml"); //System.setProperty(pn_log_level, "trace"); } //@AfterClass //public static void tearDownAfterClass() throws Exception { //} //@Before //public void setUp() throws Exception { //} //@After //public void tearDown() throws Exception { //} @Test public void testParse() throws Exception { ModelManagement dict = new ModelManagementImpl(); JsonpParser parser = new JsonpParser(dict); List<Data> elts = parser.parse(json); //System.out.println(elts); assertNotNull(elts); assertEquals(18, elts.size()); Data data = elts.get(0); assertEquals("/", data.getPath()); assertNull(data.getValue()); data = elts.get(1); assertEquals("/firstName", data.getPath()); assertEquals("John", data.getValue()); data = elts.get(2); assertEquals("/lastName", data.getPath()); assertEquals("Smith", data.getValue()); //int typeId = 1; //String root = dict.getDocumentRoot(typeId); //assertEquals("", root); -> /firstName } @Test public void testParseSecurity() throws Exception { ModelManagement model = new ModelManagementImpl(); JsonpParser parser = new JsonpParser(model); File f = new File("..\\etc\\samples\\json\\security1500.json"); List<Data> data = parser.parse(f); assertNotNull(data); assertEquals(45, data.size()); FileReader fr = new FileReader("..\\etc\\samples\\json\\security5621.json"); data = parser.parse(fr); //System.out.println("data: " + data); assertNotNull(data); assertEquals(44, data.size()); InputStream fis = new FileInputStream("..\\etc\\samples\\json\\security9012.json"); data = parser.parse(fis); assertNotNull(data); assertEquals(56, data.size()); } //@Test //public void testConversion() throws Exception { // Properties props = new Properties(); // props.setProperty(pn_schema_builder_pretty, "true"); // ModelManagement model = new ModelManagementImpl(); // ContentHandler hXml = new XmlHandler(model); // hXml.init(props); // ContentHandler hJson = new JsonpHandler(model); // List<Data> data = hJson.getParser().parse(json); // System.out.println(data); // String content = hXml.getBuilder().buildContent(data); // System.out.println(content); // assertNotNull(content); //} }