Exemple #1
0
bool testSerialization()
{
    cout << "Serialization" << endl;
    NObject object;
    object.putData("key", "value").putData("escape:", "escape{}");
    object.putData("key", "newvalue");

    NArray& array = object.addElement<NArray>("array");
    array.putData("element0");
    array.putData("element1");
    array.addElement<NObject>(1).putData("key", "val");

    std::string serialized = object.getAsString();
    cout << serialized << endl;

    NObject newObject;
    newObject.getFromString(serialized);
    std::string serialized2 = newObject.getAsString();
    cout << serialized2 << endl;

    return serialized2 == serialized;
}
Exemple #2
0
bool testRecovery()
{
    cout << "Recovery" << endl;
    const std::string malformed = "{{\"data\"}, \"array\":[\"element0\",{\"key\"GARBAGE:\"val\"},\"element1\"],\"escape:\":\"escape\\{\\}\",\"key\":\"value\"}";
    const std::string expected = "{\"array\":[\"element0\",\"element1\"],\"escape\\:\":\"escape\\{\\}\",\"key\":\"value\"}";

    NObject newObject;
    newObject.getFromString(malformed);
    std::string serialized2 = newObject.getAsString();
    cout << "Malformed:" << malformed << endl;
    cout << "Recovered:" << serialized2 << endl;
    cout << "Expected :" << expected << endl;

    return serialized2 == expected;
}