public void SerializeBondedCB2Multiple() { var obj = new StructWithBonded(); var stream = new MemoryStream(); stream.SetLength(0); Util.SerializeCB2Multiple(obj, stream, 2); }
public void BondedEquals() { var obj1 = new StructWithBonded(); var obj2 = new StructWithBonded(); Assert.IsTrue(Comparer.Equal(obj1, obj2)); obj1.poly.Add(Bonded <Derived> .Empty); Assert.IsFalse(Comparer.Equal(obj1, obj2)); obj2.poly.Add(Bonded <Derived> .Empty); Assert.IsTrue(Comparer.Equal(obj1, obj2)); obj2.field = new Bonded <Derived>(new Derived()); Assert.IsFalse(Comparer.Equal(obj1, obj2)); }
public void CloningBonded() { var source = new StructWithBonded(); var field = Random.Init <Derived>(); source.field = Util.MakeBondedCB(field); var poly0 = Random.Init <EmptyBase>(); var poly1 = Random.Init <Nested>(); var poly2 = Random.Init <Derived>(); source.poly.Add(Util.MakeBondedCB(poly0)); source.poly.Add(Util.MakeBondedCB(poly1)); source.poly.Add(new Bonded <Derived>(poly2)); var target = Clone <StructWithBonded> .From(source); Assert.IsTrue(Comparer.Equal(field, target.field.Deserialize <Derived>())); Assert.IsTrue(Comparer.Equal(poly0, target.poly[0].Deserialize <EmptyBase>())); Assert.IsTrue(Comparer.Equal(poly1, target.poly[1].Deserialize())); Assert.IsTrue(Comparer.Equal(poly2, target.poly[2].Deserialize <Derived>())); }
public void SerializeBonded() { var obj = new StructWithBonded(); var field = Random.Init <Derived>(); obj.field = new Bonded <Derived>(field); var poly0 = Random.Init <EmptyBase>(); var poly1 = Random.Init <Nested>(); var poly2 = Random.Init <Derived>(); obj.poly.Add(new Bonded <EmptyBase>(poly0)); obj.poly.Add(new Bonded <Nested>(poly1)); obj.poly.Add(new Bonded <Derived>(poly2)); var stream = new MemoryStream(); Util.SerializeCB(obj, stream); stream.Position = 0; obj = Util.DeserializeCB <StructWithBonded>(stream); Assert.IsTrue(Comparer.Equal(field, obj.field.Deserialize <Derived>())); Assert.IsTrue(Comparer.Equal(poly0, obj.poly[0].Deserialize <EmptyBase>())); Assert.IsTrue(Comparer.Equal(poly1, obj.poly[1].Deserialize())); Assert.IsTrue(Comparer.Equal(poly2, obj.poly[2].Deserialize <Derived>())); stream.SetLength(0); Util.SerializeCB(obj, stream); stream.Position = 0; obj = Util.DeserializeCB <StructWithBonded>(stream); Assert.IsTrue(Comparer.Equal(field, obj.field.Deserialize <Derived>())); Assert.IsTrue(Comparer.Equal(poly0, obj.poly[0].Deserialize <EmptyBase>())); Assert.IsTrue(Comparer.Equal(poly1, obj.poly[1].Deserialize())); Assert.IsTrue(Comparer.Equal(poly2, obj.poly[2].Deserialize <Derived>())); }