Exemplo n.º 1
0
        public void DeserializeComplex_ArrayComplexMultidimetional()
        {
            var value1 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 1
            };
            var value2 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 2
            };
            var value3 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 3
            };
            var value4 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 4
            };

            var array = new PublicConstructorWithParameters[2, 2] {
                { value1, value2 }, { value3, value4 }
            };
            var expressionStr = array.AsExpression().DefaultSerializer.Serialize();
            var deserializer  = new ComplexEntityExpressionDeserializer();
            var deserialized  = deserializer.Deserialize <PublicConstructorWithParameters[, ]>(expressionStr);

            Assert.Equal(1, deserialized[0, 0].Prop1);
            Assert.Equal(2, deserialized[0, 1].Prop1);
            Assert.Equal(3, deserialized[1, 0].Prop1);
            Assert.Equal(4, deserialized[1, 1].Prop1);
        }
Exemplo n.º 2
0
        public void DeserializeComplex_DictionaryComplexKeyAndValueObject()
        {
            var key = new PublicConstructorWithParameters("value")
            {
                Prop1 = 1
            };
            var value = new PublicConstructorWithParameters("value")
            {
                Prop1 = 2
            };

            var dic = new Dictionary <PublicConstructorWithParameters, PublicConstructorWithParameters>()
            {
                { key, value },
            };

            var anonymous = new
            {
                A         = dic,
                PropKey   = key,
                PropValue = value
            };

            var expressionStr = anonymous.AsExpression().DefaultSerializer.Serialize();
            var deserializer  = new ComplexEntityExpressionDeserializer();
            var deserialized  = (ExpandoObject)deserializer.Deserialize(expressionStr, anonymous.GetType());

            var A         = GetExpandoObjectValue <Dictionary <PublicConstructorWithParameters, PublicConstructorWithParameters> >(deserialized, "A");
            var propKey   = GetExpandoObjectValue <PublicConstructorWithParameters>(deserialized, "PropKey");
            var propValue = GetExpandoObjectValue <PublicConstructorWithParameters>(deserialized, "PropValue");

            Assert.Equal(1, A.Keys.ElementAt(0).Prop1);
            Assert.Equal(2, A.Values.ElementAt(0).Prop1);

            Assert.Same(propKey, A.Keys.ElementAt(0));
            Assert.Same(propValue, A.Values.ElementAt(0));
        }
Exemplo n.º 3
0
        public void DeserializeComplex_ArrayComplex()
        {
            var value1 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 1
            };
            var value2 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 2
            };
            var value3 = new PublicConstructorWithParameters("value")
            {
                Prop1 = 3
            };

            var array         = new PublicConstructorWithParameters[] { value1, value2, value3 };
            var expressionStr = array.AsExpression().DefaultSerializer.Serialize();
            var deserializer  = new ComplexEntityExpressionDeserializer();
            var deserialized  = deserializer.Deserialize <PublicConstructorWithParameters[]>(expressionStr);

            Assert.Equal(1, deserialized[0].Prop1);
            Assert.Equal(2, deserialized[1].Prop1);
            Assert.Equal(3, deserialized[2].Prop1);
        }