Exemple #1
0
        public void Versioning()
        {
            var v1 = new Version1
            {
                MyProperty1 = 100,
                MyProperty2 = 200,
                MyProperty3 = 300
            };

            var v2 = new Version2
            {
                MyProperty1 = 100,
                MyProperty2 = 200,
                MyProperty3 = 300,
                MyProperty5 = 500,
            };

            var v0 = new Version0
            {
                MyProperty1 = 100,
            };

            var v1Bytes = MessagePackSerializer.Serialize(v1);
            var v2Bytes = MessagePackSerializer.Serialize(v2);
            var v0Bytes = MessagePackSerializer.Serialize(v0);

            var a = MessagePackSerializer.Deserialize <Version1>(v1Bytes);

            a.MyProperty1.Is(100);
            a.MyProperty2.Is(200);
            a.MyProperty3.Is(300);

            var b = MessagePackSerializer.Deserialize <Version2>(v2Bytes);

            b.MyProperty1.Is(100);
            b.MyProperty2.Is(200);
            b.MyProperty3.Is(300);
            b.MyProperty5.Is(500);

            var c = MessagePackSerializer.Deserialize <Version0>(v0Bytes);

            c.MyProperty1.Is(100);

            // smaller than schema
            var v2_ = MessagePackSerializer.Deserialize <Version2>(v1Bytes);

            v2_.MyProperty1.Is(v1.MyProperty1);
            v2_.MyProperty2.Is(v1.MyProperty2);
            v2_.MyProperty3.Is(v1.MyProperty3);
            v2_.MyProperty5.Is(0);

            // larger than schema

            var v0_ = MessagePackSerializer.Deserialize <Version0>(v1Bytes);

            v0_.MyProperty1.Is(v1.MyProperty1);
        }
Exemple #2
0
        public void Versioning()
        {
            var v1 = new Version1
            {
                MyProperty1 = 100,
                MyProperty2 = 200,
                MyProperty3 = 300
            };

            var v2 = new Version2
            {
                MyProperty1 = 100,
                MyProperty2 = 200,
                MyProperty3 = 300,
                MyProperty5 = 500,
            };

            var v0 = new Version0
            {
                MyProperty1 = 100,
            };

            var v1Bytes = serializer.Serialize(v1);
            var v2Bytes = serializer.Serialize(v2);
            var v0Bytes = serializer.Serialize(v0);

            var a = serializer.ToJson(v1Bytes);
            var b = serializer.ToJson(v2Bytes);
            var c = serializer.ToJson(v0Bytes);

            serializer.Deserialize <Version1>(v1Bytes).IsNotStructuralEqual(v1Bytes);
            serializer.Deserialize <Version2>(v2Bytes).IsNotStructuralEqual(v2Bytes);
            serializer.Deserialize <Version0>(v0Bytes).IsNotStructuralEqual(v0Bytes);

            // smaller than schema
            var v2_ = serializer.Deserialize <Version2>(v1Bytes);

            v2_.MyProperty1.Is(v1.MyProperty1);
            v2_.MyProperty2.Is(v1.MyProperty2);
            v2_.MyProperty3.Is(v1.MyProperty3);
            v2_.MyProperty5.Is(0);

            // larger than schema

            var v0_ = serializer.Deserialize <Version0>(v1Bytes);

            v0_.MyProperty1.Is(v1.MyProperty1);
        }