57 stringstream stream(ios_base::in | ios_base::out | ios_base::binary);
58 stream.exceptions(ios_base::failbit | ios_base::badbit);
60 static_cast<BinarySerializable<DerivedTestStruct> &
>(obj).toBinary(stream);
62 const auto deserializedObj(BinarySerializable<DerivedTestStruct>::fromBinary(stream));
63 CPPUNIT_ASSERT_EQUAL(obj.
someInt, deserializedObj.someInt);
64 CPPUNIT_ASSERT_EQUAL(obj.
someSize, deserializedObj.someSize);
65 CPPUNIT_ASSERT_EQUAL(obj.
someString, deserializedObj.someString);
66 CPPUNIT_ASSERT_EQUAL(obj.
someBool, deserializedObj.someBool);
80 ps.
s1 = make_shared<PointerTarget>(0xF1F2F3F3);
82 ps.
s3 = make_shared<PointerTarget>(0xBBBBBBBB);
83 ps.
u1 = make_unique<PointerTarget>(0xF1F2F3F4);
84 ps.
u2 = make_unique<PointerTarget>(0xDDDDDDDD);
85 ps.
u3 = make_unique<PointerTarget>(0xEEEEEEEE);
89 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F4), asHexNumber<uint32_t>(ps.
s1->
n));
90 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F4), asHexNumber<uint32_t>(ps.
s2->
n));
91 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xBBBBBBBB), asHexNumber<uint32_t>(ps.
s3->
n));
94 stringstream stream(ios_base::in | ios_base::out | ios_base::binary);
95 stream.exceptions(ios_base::failbit | ios_base::badbit);
97 const auto deserializedPs(PointerStruct::fromBinary(stream));
100 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F4), asHexNumber<uint32_t>(deserializedPs.s1->n));
101 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F4), asHexNumber<uint32_t>(deserializedPs.s2->n));
102 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xBBBBBBBB), asHexNumber<uint32_t>(deserializedPs.s3->n));
103 ++deserializedPs.s1->n;
104 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F5), asHexNumber<uint32_t>(deserializedPs.s1->n));
105 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F5), asHexNumber<uint32_t>(deserializedPs.s2->n));
106 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xBBBBBBBB), asHexNumber<uint32_t>(deserializedPs.s3->n));
109 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xF1F2F3F4), asHexNumber<uint32_t>(deserializedPs.u1->n));
110 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xDDDDDDDD), asHexNumber<uint32_t>(deserializedPs.u2->n));
111 CPPUNIT_ASSERT_EQUAL(asHexNumber<uint32_t>(0xEEEEEEEE), asHexNumber<uint32_t>(deserializedPs.u3->n));