const bool testJSON()

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;
}