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