1 /**
2  * Copyright: Copyright (c) 2013 Jacob Carlborg. All rights reserved.
3  * Authors: Juan Manuel
4  * Version: Initial created: Apr 14, 2013
5  * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6  */
7 module tests.EnumConstantMember;
8 
9 import orange.serialization.Serializer;
10 import orange.serialization.archives.XmlArchive;
11 import orange.test.UnitTester;
12 import tests.Util;
13 
14 Serializer serializer;
15 XmlArchive!(char) archive;
16 
17 class G
18 {
19     int a;
20     enum int someConstant = 4 * 1024;
21 }
22 
23 G g;
24 
25 unittest
26 {
27     archive = new XmlArchive!(char);
28     serializer = new Serializer(archive);
29 
30     g = new G;
31     g.a = 123;
32 
33     describe("serialize enum") in {
34         it("shouldn't fail to compile when there is a constant enum member") in {
35             auto expected = q"xml
36 <?xml version="1.0" encoding="UTF-8"?>
37 <archive version="1.0.0" type="org.dsource.orange.xml">
38     <data>
39         <object runtimeType="tests.EnumConstantMember.G" type="tests.EnumConstantMember.G" key="0" id="0">
40             <int key="a" id="1">123</int>
41         </object>
42     </data>
43 </archive>
44 xml";
45             serializer.reset();
46             serializer.serialize(g);
47 
48             assert(expected.equalToXml(archive.data));
49         };
50     };
51 
52 
53     describe("deserialize enum") in {
54         it("shouldn't fail to deserialize when there is a constant enum member") in {
55             auto gDeserialized = serializer.deserialize!(G)(archive.untypedData);
56             assert(g.a == gDeserialized.a);
57         };
58     };
59 }