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 }