Mercurial > projects > orange
view tests/Pointer.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 | 02dbd18b7fe9 |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2011 Jacob Carlborg. All rights reserved. * Authors: Jacob Carlborg * Version: Initial created: Aug 6, 2011 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module tests.Pointer; import orange.core.string; import orange.serialization.Serializer; import orange.serialization.archives.XMLArchive; import orange.test.UnitTester; import tests.Util; Serializer serializer; XMLArchive!(char) archive; class F { int value; int* ptr; int* ptr2; } F f; F fDeserialized; int pointee; unittest { archive = new XMLArchive!(char); serializer = new Serializer(archive); pointee = 3; f = new F; f.value = 9; f.ptr = &f.value; f.ptr2 = &pointee; describe("serialize pointer") in { it("should return a serialized pointer") in { serializer.reset(); serializer.serialize(f); assert(archive.data().containsDefaultXmlContent()); assert(archive.data().containsXmlTag("object", `runtimeType="tests.Pointer.F" type="F" key="0" id="0"`)); assert(archive.data().containsXmlTag("pointer", `key="ptr" id="2"`)); assert(archive.data().containsXmlTag("reference", `key="1"`, "1")); assert(archive.data().containsXmlTag("int", `key="value" id="1"`, "9")); }; }; describe("deserialize pointer") in { fDeserialized = serializer.deserialize!(F)(archive.untypedData); it("should return a deserialized pointer equal to the original pointer") in { assert(*f.ptr == *fDeserialized.ptr); }; it("the pointer should point to the deserialized value") in { assert(fDeserialized.ptr == &fDeserialized.value); }; }; }