in modules/json/json-test.cpp [92:145]
const bool testJSON() {
const gc_scoped_pool pool;
{
const list<value> ad = mklist<value>(mklist<value>(attribute, "city", string("san francisco")), mklist<value>(attribute, "state", string("ca")));
const list<value> ac = mklist<value>(mklist<value>(element, "id", string("1234")), mklist<value>(attribute, "balance", 1000));
const list<value> cr = mklist<value>(mklist<value> (attribute, "name", string("jdoe")), cons<value>(element, cons<value>("address", ad)), cons<value>(element, cons<value>("account", ac)));
const list<value> c = mklist<value>(cons<value>(element, cons<value>("customer", cr)));
ostringstream os;
writeElements<ostream*>(jsonWriter, &os, c);
assert(str(os) == testCustomer);
}
{
const list<value> phones = mklist<value> (string("408-1234"), string("650-1234"));
const list<value> l = mklist<value> (mklist<value> (element, "phones", phones), mklist<value> (element, "lastName", string("test\ttab")), mklist<value> (attribute, "firstName", string("test1")));
ostringstream os;
writeElements<ostream*>(jsonWriter, &os, l);
assert(str(os) == testPhones);
istringstream is(str(os));
const list<string> il = streamList(is);
const list<value> r = content(readElements(il));
assert(r == l);
ostringstream wos;
write(content(writeElements(r)), wos);
assert(str(wos) == str(os));
}
{
const list<value> l = mklist<value>(nilListValue + "ns1:echoString" + (nilListValue + "@xmlns:ns1" + string("http://ws.apache.org/axis2/services/echo")) + (nilListValue + "text" + string("Hello World!")));
ostringstream wos;
write(content(writeElements(valuesToElements(l))), wos);
assert(str(wos) == testEcho);
istringstream is(str(wos));
const list<string> il = streamList(is);
const list<value> r = elementsToValues(content(readElements(il)));
assert(r == l);
}
{
const list<value> l = mklist<value>((nilListValue + "fruit" + string("Apple")), (nilListValue + "fruit" + string("Orange")));
ostringstream wos;
write(content(writeElements(valuesToElements(l))), wos);
assert(str(wos) == testArray);
istringstream is(str(wos));
const list<string> il = streamList(is);
const list<value> r = elementsToValues(content(readElements(il)));
const list<value> l2 = mklist<value>(nilListValue + "fruit" + (nilListValue + string("Apple") + string("Orange")));
assert(r == l2);
}
return true;
}