/** * Copyright: Copyright (c) 2011 Jacob Carlborg. All rights reserved. * Authors: Jacob Carlborg * Version: Initial created: Aug 6, 2011 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module spec.serialization.Struct; import dspec.Dsl; import mambo.core..string; import mambo.serialization.Serializer; import mambo.serialization.archives.XmlArchive; import spec.serialization.Util; Serializer serializer; XmlArchive!(char) archive; struct B { bool opEquals (ref const B) const { return true; } } B b; unittest { archive = new XmlArchive!(char); serializer = new Serializer(archive); describe! "serialize struct" in { it! "should return a serialized struct" in { serializer.reset; serializer.serialize(B()); assert(archive.data().containsDefaultXmlContent()); assert(archive.data().contains(`<struct type="spec.serialization.Struct.B" key="0" id="0"/>`)); }; }; describe! "deserialize struct" in { it! "should return a deserialized struct equal to the original struct" in { auto bDeserialized = serializer.deserialize!(B)(archive.untypedData); assert(b == bDeserialized); }; }; }