Mercurial > projects > orange
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 |
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 } |