use of com.codename1.rad.processing.Result in project CodeRAD by shannah.
the class ResultParserTest method testResult.
private void testResult() throws Exception {
String json = "<person name=\"Paul\" email=\"paul@example.com\" dob=\"December 27, 1978\">" + "<children><person name=\"Jim\" email=\"jim@example.com\" dob=\"January 10, 1979\"/>" + "<person name=\"Jill\" email=\"jill@example.com\" dob=\"January 11, 1979\"/></children></person>";
XMLParser xparser = new XMLParser();
Element root = xparser.parse(new StringReader("<?xml version='1.0'?>\n" + json));
assertEqual("Paul", root.getAttribute("name"));
Result r = Result.fromContent(root);
assertEqual("Paul", r.get("/person/@name"));
assertEqual("Paul", r.getAsString("./@name"));
assertEqual("Paul", r.getAsString("@name"));
assertEqual("Paul", r.get("/person[0]/@name"));
assertEqual("Jim", r.get("./children/person[0]/@name"));
assertEqual("Jim", r.getAsString("./children/person/@name"));
assertEqual("Jim", r.getAsString("./children[0]/person/@name"));
assertEqual(2, r.getAsStringArray("./children/person/@name").length);
assertEqual("Jim", r.get("/person/children/person[0]/@name"));
assertEqual("Jim", r.getAsString("/person[0]/children/person/@name"));
assertEqual("Jim", r.getAsString("children[0]/person/@name"));
assertEqual(2, r.getAsStringArray("children/person/@name").length);
}
use of com.codename1.rad.processing.Result in project CodeRAD by shannah.
the class ResultParserTest method nestedXMLAttsTest.
// Disabling nested XML Atts tests because I can't figure out how
// Result works with XML...
private void nestedXMLAttsTest() throws Exception {
assertTrue(personType.newInstance() instanceof PersonModel, "persontype should create a Person, but created " + personType.newInstance());
ResultParser parser = new ResultParser(personType).property("@name", Person.name).property("@email", Person.email).property("@dob", Person.birthDate, new SimpleDateFormat("MMM d, yyyy")).property("./children/person", Person.children).property("./publication", publications);
ResultParser publicationParser = new ResultParser(publicationType).property("@name", Thing.name).property(".", Thing.description);
parser.add(publicationParser);
String json = "<person name=\"Paul\" email=\"paul@example.com\" dob=\"December 27, 1978\">" + "<children><person name=\"Jim\" email=\"jim@example.com\" dob=\"January 10, 1979\"/>" + "<person name=\"Jill\" email=\"jill@example.com\" dob=\"January 11, 1979\"/></children><publication name=\"Time Magazine\">Political and current event stories</publication>" + "<publication name=\"Vancouver Sun\"/></person>";
XMLParser xparser = new XMLParser();
Element root = xparser.parse(new StringReader("<?xml version='1.0'?>\n" + json));
Entity person = parser.parseRow(Result.fromContent(root), personType.newInstance());
assertEqual("Paul", person.getEntity().getText(Person.name));
assertEqual("paul@example.com", person.getEntity().getText(Person.email));
People children = (People) person.getEntity().get(Person.children);
assertEqual(2, children.size());
assertEqual("Jim", children.get(0).get(Person.name));
assertEqual("jim@example.com", children.get(0).get(Person.email));
assertEqual("Jill", children.get(1).get(Person.name));
assertEqual("jill@example.com", children.get(1).get(Person.email));
Publications pubs = (Publications) person.getEntity().get(publications);
assertEqual(2, pubs.size());
assertEqual("Time Magazine", pubs.get(0).get(Thing.name));
assertEqual("Vancouver Sun", pubs.get(1).get(Thing.name));
assertEqual("Political and current event stories", pubs.get(0).get(Thing.description));
}
Aggregations