Mercurial > projects > orange
comparison tests/AssociativeArray.d @ 40:02dbd18b7fe9
Moved all tests into its own modules.
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 06 Aug 2011 13:27:21 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
39:301476d40518 | 40:02dbd18b7fe9 |
---|---|
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.AssociativeArray; | |
8 | |
9 import orange.core.string; | |
10 import orange.serialization.Serializer; | |
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 class E | |
19 { | |
20 int[int] aa; | |
21 } | |
22 | |
23 E e; | |
24 | |
25 unittest | |
26 { | |
27 archive = new XMLArchive!(char); | |
28 serializer = new Serializer(archive); | |
29 | |
30 e = new E; | |
31 e.aa = [3 : 4, 1 : 2, 39 : 472, 6 : 7]; | |
32 | |
33 describe("serialize associative array") in { | |
34 it("should return a serialized associative array") in { | |
35 serializer.reset(); | |
36 serializer.serialize(e); | |
37 | |
38 assert(archive.data().containsDefaultXmlContent()); | |
39 assert(archive.data().containsXmlTag("object", `runtimeType="tests.AssociativeArray.E" type="E" key="0" id="0"`)); | |
40 version (Tango) assert(archive.data().containsXmlTag("associativeArray", `keyType="int" valueType="int" length="4" key="aa" id="1"`)); | |
41 | |
42 assert(archive.data().containsXmlTag("key", `key="0"`)); | |
43 assert(archive.data().containsXmlTag("int", `key="0" id="2"`, "1")); | |
44 assert(archive.data().containsXmlTag("value", `key="0"`)); | |
45 assert(archive.data().containsXmlTag("int", `key="0" id="3"`, "2")); | |
46 | |
47 assert(archive.data().containsXmlTag("key", `key="1"`)); | |
48 assert(archive.data().containsXmlTag("int", `key="1" id="4"`, "3")); | |
49 assert(archive.data().containsXmlTag("value", `key="1"`)); | |
50 assert(archive.data().containsXmlTag("int", `key="1" id="5"`, "4")); | |
51 | |
52 assert(archive.data().containsXmlTag("key", `key="2"`)); | |
53 assert(archive.data().containsXmlTag("int", `key="2" id="6"`, "6")); | |
54 assert(archive.data().containsXmlTag("value", `key="2"`)); | |
55 assert(archive.data().containsXmlTag("int", `key="2" id="7"`, "7")); | |
56 | |
57 assert(archive.data().containsXmlTag("key", `key="3"`)); | |
58 assert(archive.data().containsXmlTag("int", `key="3" id="8"`, "39")); | |
59 assert(archive.data().containsXmlTag("value", `key="3"`)); | |
60 assert(archive.data().containsXmlTag("int", `key="3" id="9"`, "472")); | |
61 }; | |
62 }; | |
63 | |
64 describe("deserialize associative array") in { | |
65 it("should return an associative array equal to the original associative array") in { | |
66 auto eDeserialized = serializer.deserialize!(E)(archive.untypedData); | |
67 | |
68 foreach (k, v ; eDeserialized.aa) | |
69 assert(e.aa[k] == v); | |
70 | |
71 version (D_Version2) | |
72 assert(e.aa == eDeserialized.aa); | |
73 }; | |
74 }; | |
75 } |