diff tests/Event.d @ 42:8b9409423740

Added unit tests for (de)serializing events.
author Jacob Carlborg <doob@me.com>
date Sun, 07 Aug 2011 17:53:50 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/Event.d	Sun Aug 07 17:53:50 2011 +0200
@@ -0,0 +1,63 @@
+/**
+ * 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 tests.Event;
+
+import orange.core.string;
+import orange.serialization.Serializer;
+import orange.serialization.Events;
+import orange.serialization.archives.XMLArchive;
+import orange.test.UnitTester;
+import tests.Util;
+
+Serializer serializer;
+XMLArchive!(char) archive;
+
+int[] arr;
+
+class Foo
+{
+
+	void serializing ()
+	{
+		arr ~= 1;
+	}
+
+	void serialized ()
+	{
+		arr ~= 2;
+	}
+	
+	void deserializing ()
+	{
+		arr ~= 3;
+	}
+	
+	void deserialized ()
+	{
+		arr ~= 4;
+	}
+	
+	mixin OnSerializing!(serializing);
+	mixin OnSerialized!(serialized);
+	mixin OnDeserializing!(deserializing);
+	mixin OnDeserialized!(deserialized);
+}
+
+unittest
+{
+	archive = new XMLArchive!(char);
+	serializer = new Serializer(archive);
+
+	describe("serialization events") in {
+		it("all four events should be triggered when serializing and deserializing") in {
+			serializer.serialize(new Foo);
+			serializer.deserialize!(Foo)(archive.untypedData);
+
+			assert(arr == [1, 2, 3, 4]);
+		};
+	};
+}
\ No newline at end of file