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]); } }
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); } }
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); } }
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); } }