1 /** 2 * Copyright: Copyright (c) 2011 Jacob Carlborg. All rights reserved. 3 * Authors: Jacob Carlborg 4 * Version: Initial created: Aug 6, 2011 5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) 6 */ 7 module spec.serialization.Object; 8 9 import dspec.Dsl; 10 11 import mambo.core..string; 12 import mambo.serialization.Serializer; 13 import mambo.serialization.archives.XmlArchive; 14 import spec.serialization.Util; 15 16 Serializer serializer; 17 XmlArchive!(char) archive; 18 19 class A 20 { 21 override equals_t opEquals (Object other) 22 { 23 if (auto o = cast(A) other) 24 return true; 25 26 return false; 27 } 28 } 29 30 A a; 31 32 unittest 33 { 34 archive = new XmlArchive!(char); 35 serializer = new Serializer(archive); 36 37 a = new A; 38 39 describe! "serialize object" in { 40 it! "should return a serialized object" in { 41 serializer.reset; 42 serializer.serialize(a); 43 44 assert(archive.data().containsDefaultXmlContent()); 45 assert(archive.data().contains(`<object runtimeType="spec.serialization.Object.A" type="spec.serialization.Object.A" key="0" id="0"/>`)); 46 }; 47 }; 48 49 describe! "deserialize object" in { 50 it! "should return a deserialized object equal to the original object" in { 51 auto aDeserialized = serializer.deserialize!(A)(archive.untypedData); 52 assert(a == aDeserialized); 53 }; 54 }; 55 }