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 tests.Event; 8 9 import orange.serialization.Serializer; 10 import orange.serialization.Events; 11 import orange.serialization.archives.XmlArchive; 12 import orange.test.UnitTester; 13 import tests.Util; 14 15 Serializer serializer; 16 XmlArchive!(char) archive; 17 18 int[] arr; 19 20 class Foo 21 { 22 23 void serializing () 24 { 25 arr ~= 1; 26 } 27 28 void serialized () 29 { 30 arr ~= 2; 31 } 32 33 void deserializing () 34 { 35 arr ~= 3; 36 } 37 38 void deserialized () 39 { 40 arr ~= 4; 41 } 42 43 mixin OnSerializing!(serializing); 44 mixin OnSerialized!(serialized); 45 mixin OnDeserializing!(deserializing); 46 mixin OnDeserialized!(deserialized); 47 } 48 49 unittest 50 { 51 archive = new XmlArchive!(char); 52 serializer = new Serializer(archive); 53 54 describe("serialization events") in { 55 it("all four events should be triggered when serializing and deserializing") in { 56 serializer.serialize(new Foo); 57 serializer.deserialize!(Foo)(archive.untypedData); 58 59 assert(arr == [1, 2, 3, 4]); 60 }; 61 }; 62 }