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 }