Exemple #1
0
        public void CanConvertObjectWithArray(bool formatOutput, SerializationTypeHandle serializationTypeHandle, string serializedForm)
        {
            var obj = new ObjectWithArray()
            {
                Array = new int[]
                {
                    1, 2, 3, 4, 5
                }
            };

            var str = _serializer.Serialize(obj, new SerializerSettings()
            {
                FormattedString = formatOutput, SerializationTypeHandle = serializationTypeHandle
            });

            Console.WriteLine(str);

            if (!formatOutput)
            {
                Assert.AreEqual(serializedForm, str);
            }

            var strDeserialized = _deserializer.Deserialize <ObjectWithArray>(str);

            Assert.NotNull(strDeserialized);
            Assert.IsInstanceOf <ObjectWithArray>(strDeserialized);
            Assert.AreEqual(obj.Array.Length, strDeserialized.Array.Length);
            for (int i = 0; i < strDeserialized.Array.Length; i++)
            {
                Assert.AreEqual(obj.Array[i], strDeserialized.Array[i]);
            }
        }
Exemple #2
0
        public void CanConvertObjectWithAbstractType(bool formatOutput, SerializationTypeHandle serializationTypeHandle, Type exceptionType, string serializedForm)
        {
            var obj = new ObjectWithAbstractClass
            {
                ObjectImplementingAbstractClass = new ObjectImplementingAbstractClass()
                {
                    AbstractPropInt = 50,
                    PropInt         = 100
                }
            };

            var str = Converter.Serialize(obj, new SerializerSettings {
                FormattedString = formatOutput, SerializationTypeHandle = serializationTypeHandle
            });

            Console.WriteLine(str);
            if (!formatOutput)
            {
                Assert.AreEqual(serializedForm, str);
            }

            if (!ThrowsException(exceptionType, () => { Converter.Deserialize <ObjectWithAbstractClass>(str); }))
            {
                var strDeserialized = Converter.Deserialize <ObjectWithAbstractClass>(str);
                Assert.NotNull(strDeserialized);
                Assert.IsInstanceOf <ObjectWithAbstractClass>(strDeserialized);
                Assert.IsInstanceOf <ObjectImplementingAbstractClass>(strDeserialized.ObjectImplementingAbstractClass);
                Assert.AreEqual(((ObjectImplementingAbstractClass)obj.ObjectImplementingAbstractClass).PropInt, ((ObjectImplementingAbstractClass)strDeserialized.ObjectImplementingAbstractClass).PropInt);
                Assert.AreEqual(((ObjectImplementingAbstractClass)obj.ObjectImplementingAbstractClass).AbstractPropInt, ((ObjectImplementingAbstractClass)strDeserialized.ObjectImplementingAbstractClass).AbstractPropInt);
            }
        }
Exemple #3
0
        public void CanConvertObjectWithArrayOfObjects(bool formatOutput, SerializationTypeHandle serializationTypeHandle, string serializedForm)
        {
            var obj = new ObjectWithArrayOfObjects()
            {
                Array = new PrimitiveHolder[]
                {
                    new PrimitiveHolder
                    {
                        PropBool   = true,
                        PropDouble = 100.2,
                        PropFloat  = 1.2f,
                        PropInt    = 26,
                        PropString = "String"
                    },
                    new PrimitiveHolder
                    {
                        PropBool   = false,
                        PropDouble = 100.1,
                        PropFloat  = 1.1f,
                        PropInt    = 25,
                        PropString = "String2"
                    }
                }
            };

            var str = _serializer.Serialize(obj, new SerializerSettings()
            {
                FormattedString = formatOutput, SerializationTypeHandle = serializationTypeHandle
            });

            Console.WriteLine(str);

            if (!formatOutput)
            {
                Assert.AreEqual(serializedForm, str);
            }

            var strDeserialized = _deserializer.Deserialize <ObjectWithArrayOfObjects>(str);

            Assert.NotNull(strDeserialized);
            Assert.IsInstanceOf <ObjectWithArrayOfObjects>(strDeserialized);
            Assert.AreEqual(obj.Array.Length, strDeserialized.Array.Length);
            for (int i = 0; i < strDeserialized.Array.Length; i++)
            {
                Assert.AreEqual(obj.Array[i].PropBool, strDeserialized.Array[i].PropBool);
                Assert.AreEqual(obj.Array[i].PropDouble, strDeserialized.Array[i].PropDouble);
                Assert.AreEqual(obj.Array[i].PropFloat, strDeserialized.Array[i].PropFloat);
                Assert.AreEqual(obj.Array[i].PropInt, strDeserialized.Array[i].PropInt);
                Assert.AreEqual(obj.Array[i].PropString, strDeserialized.Array[i].PropString);
            }
        }
Exemple #4
0
 private void AppendType(object obj, SerializationTypeHandle serializationTypeHandle, int indentLevel, string appendString = "")
 {
     if (_settingsManager.SerializationTypeHandle == SerializationTypeHandle.All || _settingsManager.SerializationTypeHandle == serializationTypeHandle)
     {
         PrettyPrintNewLine();
         PrettyPrintIndent(indentLevel);
         AppendAsString("$type");
         _serialized.Append(Constants.COLON);
         PrettyPrintSpace();
         AppendAsString(obj.GetType().GetTypeAsString());
         _serialized.Append(appendString);
         PrettyPrintNewLine();
         PrettyPrintIndent(indentLevel);
     }
 }