コード例 #1
0
        public void CreateCompiled_ShouldHandleTypeValueArray()
        {
            var value = new TypeValues
            {
                Primitives = new[]
                {
                    new Value {
                        B = 8, S = 16, I = 32, L = 64
                    },
                    new Value {
                        B = 8, S = 16, I = 32, L = 64
                    }
                }
            };

            var writer = _binFactory.Get(34);

            writer.WriteValue(value.Primitives.Length);
            foreach (var v in value.Primitives)
            {
                v.Serialize(writer);
            }

            var reader          = _binFactory.Get(writer.GetBuffer());
            var compiledStorage = DeserializerStorageProvider.CreateCompiled <TypeValues>();
            var desValue        = new TypeValues();

            compiledStorage.Deserialize(_emptyDes, reader, _policy, desValue);

            Assert.True(!value.Primitives.Where((t, i) => !_valueComparer.Equals(t, desValue.Primitives[i])).Any());
        }
コード例 #2
0
        public void CreateCompiled_ShouldHandleValueTypeCollectionOfCollection()
        {
            var value = new ValueCollectionOfCollection
            {
                Collection = new List <List <int> >(2)
                {
                    new List <int>(3)
                    {
                        1, 2, 3
                    },
                    new List <int>(3)
                    {
                        4, 5, 6
                    }
                }
            };

            var writer = _binFactory.Get(36);

            value.Serialize(writer);

            var reader          = _binFactory.Get(writer.GetBuffer());
            var compiledStorage = DeserializerStorageProvider.CreateCompiled <ValueCollectionOfCollection>();
            var desValue        = new ValueCollectionOfCollection();

            compiledStorage.Deserialize(_emptyDes, reader, _policy, desValue);

            Assert.Equal(value.Collection[0], desValue.Collection[0]);
            Assert.Equal(value.Collection[1], desValue.Collection[1]);
        }
コード例 #3
0
        public void CreateCompiled_ShouldHandleTypeValueCollection()
        {
            var value = new TypeValueCollection
            {
                Collection = new List <Value>(6)
                {
                    new Value {
                        B = 8, S = 16, I = 32, L = 64
                    },
                    new Value {
                        B = 8, S = 16, I = 32, L = 64
                    }
                }
            };

            var writer = _binFactory.Get(34);

            value.Serialize(writer);

            var reader          = _binFactory.Get(writer.GetBuffer());
            var compiledStorage = DeserializerStorageProvider.CreateCompiled <TypeValueCollection>();
            var desValue        = new TypeValueCollection();

            compiledStorage.Deserialize(_emptyDes, reader, _policy, desValue);

            for (var i = 0; i < 2; i++)
            {
                Assert.True(_valueComparer.Equals(value.Collection[i], desValue.Collection[i]));
            }
        }
コード例 #4
0
        public void CreateLazy_ShouldBuildOnFirstCall()
        {
            var builder = new DeserializerBuilder(_policy);

            Assert.Null(LazyDeserializeMethodCache <LazyPrimitive> .Builder); // ensure nothing is set yet

            var storage = DeserializerStorageProvider.CreateLazy <LazyPrimitive>();

            Assert.NotNull(LazyDeserializeMethodCache <LazyPrimitive> .Builder);                             // should be set now
            Assert.Throws <KeyNotFoundException>(() => DeserializeMethodCache <LazyPrimitive> .Deserialize); // still not registered, should be null

            builder.Register(storage);
            Assert.NotNull(DeserializeMethodCache <LazyPrimitive> .Deserialize); // should be set now
        }
コード例 #5
0
        public void CreateCompiled_ShouldHandleValueTypeArray()
        {
            var value = new Values {
                Array = new[] { 1, 2, 3, 4, 5, 6 }
            };

            var writer = _binFactory.Get(28);

            writer.WriteValue(value.Array.Length);
            writer.WriteValues(value.Array);

            var reader          = _binFactory.Get(writer.GetBuffer());
            var compiledStorage = DeserializerStorageProvider.CreateCompiled <Values>();
            var desValue        = new Values();

            compiledStorage.Deserialize(_emptyDes, reader, _policy, desValue);

            Assert.Equal(value.Array, desValue.Array);
        }
コード例 #6
0
        public void CreateCompiled_ShouldHandleTypeValue()
        {
            var value = new TypeValue {
                Primitive = new Value {
                    B = 8, S = 16, I = 32, L = 64
                }
            };

            var writer = _binFactory.Get(15);

            value.Primitive.Serialize(writer);

            var reader          = _binFactory.Get(writer.GetBuffer());
            var compiledStorage = DeserializerStorageProvider.CreateCompiled <TypeValue>();
            var desValue        = new TypeValue();

            compiledStorage.Deserialize(_emptyDes, reader, _policy, desValue);

            Assert.True(_valueComparer.Equals(value.Primitive, desValue.Primitive));
        }