mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Convert unit tests to beast
This commit is contained in:
@@ -1560,3 +1560,92 @@ UPTR_T<STObject> STObject::parseJson (const Json::Value& object, SField::ref inN
|
||||
|
||||
return UPTR_T<STObject> (new STObject (*name, data));
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
class SerializedObjectTests : public UnitTest
|
||||
{
|
||||
public:
|
||||
SerializedObjectTests () : UnitTest ("SerializedObject", "ripple")
|
||||
{
|
||||
}
|
||||
|
||||
void runTest ()
|
||||
{
|
||||
beginTest ("serialization");
|
||||
|
||||
if (sfGeneric.isUseful ())
|
||||
fail ("sfGeneric must not be useful");
|
||||
|
||||
SField sfTestVL (STI_VL, 255, "TestVL");
|
||||
SField sfTestH256 (STI_HASH256, 255, "TestH256");
|
||||
SField sfTestU32 (STI_UINT32, 255, "TestU32");
|
||||
SField sfTestObject (STI_OBJECT, 255, "TestObject");
|
||||
|
||||
SOTemplate elements;
|
||||
elements.push_back (SOElement (sfFlags, SOE_REQUIRED));
|
||||
elements.push_back (SOElement (sfTestVL, SOE_REQUIRED));
|
||||
elements.push_back (SOElement (sfTestH256, SOE_OPTIONAL));
|
||||
elements.push_back (SOElement (sfTestU32, SOE_REQUIRED));
|
||||
|
||||
STObject object1 (elements, sfTestObject);
|
||||
STObject object2 (object1);
|
||||
|
||||
if (object1.getSerializer () != object2.getSerializer ()) fail ("STObject error 1");
|
||||
|
||||
if (object1.isFieldPresent (sfTestH256) || !object1.isFieldPresent (sfTestVL))
|
||||
fail ("STObject error");
|
||||
|
||||
object1.makeFieldPresent (sfTestH256);
|
||||
|
||||
if (!object1.isFieldPresent (sfTestH256)) fail ("STObject Error 2");
|
||||
|
||||
if (object1.getFieldH256 (sfTestH256) != uint256 ()) fail ("STObject error 3");
|
||||
|
||||
if (object1.getSerializer () == object2.getSerializer ())
|
||||
{
|
||||
WriteLog (lsINFO, STObject) << "O1: " << object1.getJson (0);
|
||||
WriteLog (lsINFO, STObject) << "O2: " << object2.getJson (0);
|
||||
fail ("STObject error 4");
|
||||
}
|
||||
|
||||
object1.makeFieldAbsent (sfTestH256);
|
||||
|
||||
if (object1.isFieldPresent (sfTestH256)) fail ("STObject error 5");
|
||||
|
||||
if (object1.getFlags () != 0) fail ("STObject error 6");
|
||||
|
||||
if (object1.getSerializer () != object2.getSerializer ()) fail ("STObject error 7");
|
||||
|
||||
STObject copy (object1);
|
||||
|
||||
if (object1.isFieldPresent (sfTestH256)) fail ("STObject error 8");
|
||||
|
||||
if (copy.isFieldPresent (sfTestH256)) fail ("STObject error 9");
|
||||
|
||||
if (object1.getSerializer () != copy.getSerializer ()) fail ("STObject error 10");
|
||||
|
||||
copy.setFieldU32 (sfTestU32, 1);
|
||||
|
||||
if (object1.getSerializer () == copy.getSerializer ()) fail ("STObject error 11");
|
||||
|
||||
for (int i = 0; i < 1000; i++)
|
||||
{
|
||||
Blob j (i, 2);
|
||||
|
||||
object1.setFieldVL (sfTestVL, j);
|
||||
|
||||
Serializer s;
|
||||
object1.add (s);
|
||||
SerializerIterator it (s);
|
||||
|
||||
STObject object3 (elements, it, sfTestObject);
|
||||
|
||||
if (object1.getFieldVL (sfTestVL) != j) fail ("STObject error");
|
||||
|
||||
if (object3.getFieldVL (sfTestVL) != j) fail ("STObject error");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static SerializedObjectTests serializedObjectTests;
|
||||
|
||||
Reference in New Issue
Block a user