Пример #1
0
        // Deserialize T from IBonded<T> containing an instance or payload of derived class.
        void BondedDeserialize <T, D>()
            where T : class
            where D : class, T, new()
        {
            var from = Random.Init <D>();

            IBonded <T> bondedInstance   = new Bonded <D>(from);
            IBonded <T> bondedPayloadCB  = Util.MakeBondedCB(from);
            IBonded <T> bondedPayloadCB2 = Util.MakeBondedCB2(from);
            IBonded <T> bondedPayloadSP  = Util.MakeBondedSP(from);
            IBonded <BondClass <IBonded <T> > > nestedBonded =
                new Bonded <BondClass <IBonded <T> > >(new BondClass <IBonded <T> > {
                field = bondedInstance
            });

            for (var i = 2; --i != 0;)
            {
                var to1   = bondedInstance.Deserialize();
                var to2   = bondedPayloadCB.Deserialize();
                var toCb2 = bondedPayloadCB2.Deserialize();
                var to3   = bondedPayloadSP.Deserialize();

                Assert.IsTrue(to1.IsEqual <T>(from));
                Assert.IsTrue(to2.IsEqual <T>(from));
                Assert.IsTrue(toCb2.IsEqual <T>(from));
                Assert.IsTrue(to3.IsEqual <T>(from));
                Assert.IsTrue(nestedBonded.Deserialize().field.Deserialize().IsEqual(from));
            }
        }
Пример #2
0
        public void From_WithBonded_CanDeserialize()
        {
            IBonded <SomePayload> bondedPayload = new Bonded <SomePayload>(SomePayload.Any);
            var msg = Message.From(bondedPayload);

            var deserializedPayload = msg.Payload.Deserialize();

            Assert.IsTrue(SomePayload.Any.IsEqual <SomePayload>(deserializedPayload));
        }
Пример #3
0
        public void Construct_WithBonded_CanDeserialize()
        {
            var bondedPayload = new Bonded <SomePayload>(SomePayload.Any);
            var msg           = new Message <SomePayload>(bondedPayload);

            var deserializedPayload = msg.Payload.Deserialize();

            Assert.IsTrue(SomePayload.Any.IsEqual <SomePayload>(deserializedPayload));
        }
        public void FromPayload_WithDerivedPayload_IsPayload()
        {
            IBonded typelessBonded = new Bonded <SomeDerivedPayload>(AnyDerivedPayload);
            var     msg            = Message.FromPayload(typelessBonded);

            Assert.IsFalse(msg.IsError);
            Assert.IsNull(msg.Error);

            var deserializedPayload = msg.RawPayload.Deserialize <SomeDerivedPayload>();

            Assert.IsTrue(AnyDerivedPayload.IsEqual <SomeDerivedPayload>(deserializedPayload));
        }
        public void ConstructT_WithBonded_IsPayload()
        {
            var bondedPayload = new Bonded <SomePayload>(AnyPayload);
            var msg           = new Message <SomePayload>(bondedPayload);

            Assert.IsFalse(msg.IsError);
            Assert.IsNull(msg.Error);

            var deserializedPayload = msg.Payload.Deserialize();

            Assert.IsTrue(AnyPayload.IsEqual <SomePayload>(deserializedPayload));
        }
        public void Message_ConvertToMessageT_Works()
        {
            IBonded typelessBonded = new Bonded <SomeDerivedPayload>(AnyDerivedPayload);
            var     msg            = Message.FromPayload(typelessBonded);

            var messageBase = msg.Convert <SomePayload>();

            Assert.AreEqual(500, messageBase.Payload.Deserialize().int_field);

            var messageDerived = msg.Convert <SomeDerivedPayload>();

            Assert.IsTrue(AnyDerivedPayload.IsEqual <SomeDerivedPayload>(messageDerived.Payload.Deserialize()));
        }
Пример #7
0
        private static IMessage <T> FromByteArray(byte[] arr)
        {
            if (arr == null)
            {
                return(null);
            }

            var input  = new InputBuffer(arr);
            var reader = new CompactBinaryReader <InputBuffer>(input);
            var bonded = new Bonded <T, CompactBinaryReader <InputBuffer> >(reader);

            return(Message.From <T>(bonded));
        }
Пример #8
0
        void BondedSerialize <T, D>()
            where T : class
            where D : class, T, new()
        {
            var from = Random.Init <D>();

            IBonded <T> bondedInstance  = new Bonded <D>(from);
            IBonded <T> bondedPayloadCB = Util.MakeBondedCB(from);
            IBonded <T> bondedPayloadSP = Util.MakeBondedSP(from);

            BondedSerialize(from, bondedInstance);
            BondedSerialize(from, bondedPayloadCB);
            BondedSerialize(from, bondedPayloadSP);

            BondedSerialize(from, bondedPayloadCB as IBonded);
        }
Пример #9
0
        // Deserialize derived class from IBonded<T> containing an instance or payload of derived class.
        void BondedDowncastDeserialize <T, D>()
            where T : class
            where D : class, T, new()
        {
            var from = Random.Init <D>();

            IBonded <T> bondedInstance  = new Bonded <D>(from);
            IBonded <T> bondedPayloadCB = Util.MakeBondedCB(from);
            IBonded <T> bondedPayloadSP = Util.MakeBondedSP(from);

            for (var i = 2; --i != 0;)
            {
                var to1 = bondedInstance.Deserialize <D>();
                var to2 = bondedPayloadCB.Deserialize <D>();
                var to3 = bondedPayloadSP.Deserialize <D>();

                Assert.IsTrue(to1.IsEqual <D>(from));
                Assert.IsTrue(to2.IsEqual <D>(from));
                Assert.IsTrue(to3.IsEqual <D>(from));
            }
        }
Пример #10
0
        public void Message_ConvertToMessageT_Works()
        {
            IBonded typelessBonded = new Bonded<SomeDerivedPayload>(AnyDerivedPayload);
            var msg = Message.FromPayload(typelessBonded);

            var messageBase = msg.Convert<SomePayload>();
            Assert.AreEqual(500, messageBase.Payload.Deserialize().int_field);

            var messageDerived = msg.Convert<SomeDerivedPayload>();
            Assert.IsTrue(AnyDerivedPayload.IsEqual<SomeDerivedPayload>(messageDerived.Payload.Deserialize()));
        }
Пример #11
0
        public void FromPayload_WithDerivedPayload_IsPayload()
        {
            IBonded typelessBonded = new Bonded<SomeDerivedPayload>(AnyDerivedPayload);
            var msg = Message.FromPayload(typelessBonded);
            Assert.IsFalse(msg.IsError);
            Assert.IsNull(msg.Error);

            var deserializedPayload = msg.RawPayload.Deserialize<SomeDerivedPayload>();
            Assert.IsTrue(AnyDerivedPayload.IsEqual<SomeDerivedPayload>(deserializedPayload));
        }
Пример #12
0
        public void ConstructT_WithBonded_IsPayload()
        {
            var bondedPayload = new Bonded<SomePayload>(AnyPayload);
            var msg = new Message<SomePayload>(bondedPayload);
            Assert.IsFalse(msg.IsError);
            Assert.IsNull(msg.Error);

            var deserializedPayload = msg.Payload.Deserialize();
            Assert.IsTrue(AnyPayload.IsEqual<SomePayload>(deserializedPayload));
        }