Пример #1
0
        public void SerializeBondedCB2Multiple()
        {
            var obj = new StructWithBonded();

            var stream = new MemoryStream();

            stream.SetLength(0);
            Util.SerializeCB2Multiple(obj, stream, 2);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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>()));
        }
Пример #4
0
        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>()));
        }