annotate tests/Subclass.d @ 51:70df72d2299a default tip

Added unit tests for events.
author Jacob Carlborg <doob@me.com>
date Sat, 13 Aug 2011 17:06:35 +0200
parents 9c9bbef6bf5e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
43
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
1 /**
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
2 * Copyright: Copyright (c) 2011 Jacob Carlborg. All rights reserved.
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
3 * Authors: Jacob Carlborg
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
4 * Version: Initial created: Aug 7, 2011
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
6 */
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
7 module tests.Subclass;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
8
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
9 import orange.core.string;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
10 import orange.serialization.Serializer;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
11 import orange.serialization.archives.XMLArchive;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
12 import orange.test.UnitTester;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
13 import tests.Util;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
14
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
15 Serializer serializer;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
16 XMLArchive!(char) archive;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
17
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
18 class Base
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
19 {
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
20 int a;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
21 }
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
22
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
23 class Sub : Base
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
24 {
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
25 int b;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
26 }
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
27
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
28 Sub sub;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
29
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
30 unittest
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
31 {
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
32 archive = new XMLArchive!(char);
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
33 serializer = new Serializer(archive);
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
34
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
35 sub = new Sub;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
36 sub.a = 3;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
37 sub.b = 4;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
38
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
39 describe("serialize a subclass") in {
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
40 it("should return serialized subclass") in {
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
41 serializer.reset;
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
42 serializer.serialize(sub);
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
43
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
44 assert(archive.data().containsDefaultXmlContent());
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
45 assert(archive.data().containsXmlTag("object", `runtimeType="tests.Subclass.Sub" type="Sub" key="0" id="0"`));
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
46 assert(archive.data().containsXmlTag("int", `key="b" id="1"`, "4"));
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
47 assert(archive.data().containsXmlTag("base", `type="Base" key="1" id="2"`));
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
48 assert(archive.data().containsXmlTag("int", `key="a" id="3"`, "3"));
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
49 };
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
50 };
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
51
47
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
52 describe("deserialize class with a base class") in {
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
53 it("should return a deserialized string equal to the original string") in {
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
54 auto subDeserialized = serializer.deserialize!(Sub)(archive.untypedData);
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
55
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
56 assert(sub.a == subDeserialized.a);
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
57 assert(sub.b == subDeserialized.b);
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
58 };
9c9bbef6bf5e Implemented unarchiveBaseClass. Enabled the unit tests for deserialize subclasses.
Jacob Carlborg <doob@me.com>
parents: 43
diff changeset
59 };
43
6f35fb47ca24 Added test for serializing subclasses.
Jacob Carlborg <doob@me.com>
parents:
diff changeset
60 }