public void TestConstruction() { TestObject1 obj1 = new TestObject1("some value"); Variant v1 = new Variant(obj1); Assert.AreEqual(v1.Type, Variant.EnumType.Object); TestObject1 obj2 = v1.AsObject<TestObject1>(); Assert.AreEqual(obj1, obj2); Assert.Throws<VariantException>(delegate { v1.AsObject<TestObject2>(); }); Assert.Throws<VariantException>(delegate { v1.AsObject<VariantObjectProxy>(); }); VariantObjectProxy obj3 = new VariantObjectProxy(obj1.Class); obj3.Inflate(obj2.Deflate(), obj2.Version); Assert.AreEqual(obj3.Class, "TestObject1"); Assert.AreEqual(obj3.Version, 1); Assert.AreEqual(obj3.Deflate().Type, Variant.EnumType.Dictionary); Variant v2 = new Variant(obj3); Assert.IsInstanceOf<VariantObjectProxy>(v2.AsObject()); Assert.Throws<VariantException>(delegate { v1.AsObject<TestObject2>(); }); TestObject1 obj5 = v2.AsObject<TestObject1>(); Assert.AreEqual(obj5.Class, "TestObject1"); Assert.AreEqual(obj5.Version, 1); Assert.IsInstanceOf<TestObject1>(v2.AsObject()); }
public void TestConstruction() { TestObject1 obj1 = new TestObject1("some value"); Variant v1 = new Variant(obj1); Assert.AreEqual(v1.Type, Variant.EnumType.Object); TestObject1 obj2 = v1.AsObject <TestObject1>(); Assert.AreEqual(obj1, obj2); Assert.Throws <VariantException>(delegate { v1.AsObject <TestObject2>(); }); Assert.Throws <VariantException>(delegate { v1.AsObject <VariantObjectProxy>(); }); VariantObjectProxy obj3 = new VariantObjectProxy(obj1.Class); obj3.Inflate(obj2.Deflate(), obj2.Version); Assert.AreEqual(obj3.Class, "TestObject1"); Assert.AreEqual(obj3.Version, 1); Assert.AreEqual(obj3.Deflate().Type, Variant.EnumType.Dictionary); Variant v2 = new Variant(obj3); Assert.IsInstanceOf <VariantObjectProxy>(v2.AsObject()); Assert.Throws <VariantException>(delegate { v1.AsObject <TestObject2>(); }); TestObject1 obj5 = v2.AsObject <TestObject1>(); Assert.AreEqual(obj5.Class, "TestObject1"); Assert.AreEqual(obj5.Version, 1); Assert.IsInstanceOf <TestObject1>(v2.AsObject()); }