public void Generic_object_serialization_with_anonymous_of_anonymous_types_does_not_throws() { var changeset = new DomainEvent[] { new SampleEvent("ciao"), new SampleEvent("foo") }; ClassWithAnonymousType classWithAnonymousType = new ClassWithAnonymousType() { DomainEvents = new[] { "foo", "bar" }, ExtraData = new { Events = changeset.Select(evt => new { evt.GetType().Name, Data = evt }).ToArray(), } }; var serialized = JsonConvert.SerializeObject(classWithAnonymousType, GetSettingsForTest()); var defaultSerialized = JsonConvert.SerializeObject(classWithAnonymousType, GetDefaultSettingsWithFullSerialization()); Console.WriteLine(serialized); Console.WriteLine(defaultSerialized); ClassWithAnonymousType test = JsonConvert.DeserializeObject <ClassWithAnonymousType>(defaultSerialized, GetDefaultSettingsWithFullSerialization()); Assert.DoesNotThrow(() => JsonConvert.DeserializeObject <ClassWithAnonymousType>(serialized, GetSettingsForTest())); }
public void Generic_object_serialization_with_anonymous_types_does_not_throws() { ClassWithAnonymousType classWithAnonymousType = new ClassWithAnonymousType() { DomainEvents = new[] { "foo", "bar" }, ExtraData = new { Property = "this is a property" } }; var serialized = JsonConvert.SerializeObject(classWithAnonymousType, GetSettingsForTest()); var defaultSerialized = JsonConvert.SerializeObject(classWithAnonymousType, GetDefaultSettingsWithFullSerialization()); Console.WriteLine("CUSTOM SERIALIZATION"); Console.WriteLine(serialized); Console.WriteLine("\n\nDEFAULT SERIALIZATION"); Console.WriteLine(defaultSerialized); // if the serialization content contains netcore type, we failed... Assert.That(!serialized.Contains("System.Private.CoreLib")); Assert.DoesNotThrow(() => JsonConvert.DeserializeObject <ClassWithAnonymousType>(serialized, GetSettingsForTest())); var deserialized = JsonConvert.DeserializeObject <ClassWithAnonymousType>(serialized, GetSettingsForTest()); Assert.That(deserialized.ExtraData.GetPropertyValue("Property"), Is.EqualTo("this is a property")); }
public void Generic_object_serialization_with_complex_anonymous_types_and_linq() { ClassWithAnonymousType classWithAnonymousType = new ClassWithAnonymousType() { DomainEvents = new[] { "foo", "bar" }, ExtraData = new { Id = "Document_123", ContainerId = "Container_2134", CreationUser = "******", IsInDraft = true, Workflows = new[] { "a", "b" } } }; var serialized = JsonConvert.SerializeObject(classWithAnonymousType, GetSettingsForTest()); var defaultSerialized = JsonConvert.SerializeObject(classWithAnonymousType, GetDefaultSettingsWithFullSerialization()); Console.WriteLine("CUSTOM SERIALIZATION"); Console.WriteLine(serialized); Console.WriteLine("\n\nDEFAULT SERIALIZATION"); Console.WriteLine(defaultSerialized); // if the serialization content contains netcore type, we failed... Assert.That(!serialized.Contains("System.Private.CoreLib")); Assert.DoesNotThrow(() => JsonConvert.DeserializeObject <ClassWithAnonymousType>(serialized, GetSettingsForTest())); var deserialized = JsonConvert.DeserializeObject <ClassWithAnonymousType>(serialized, GetSettingsForTest()); Assert.That(deserialized.ExtraData.GetPropertyValue("IsInDraft"), Is.EqualTo(true)); Assert.That(deserialized.ExtraData.GetPropertyValue("Workflows"), Is.EqualTo(new[] { "a", "b" })); }
public void Generic_object_serialization() { ClassWithAnonymousType classWithAnonymousType = new ClassWithAnonymousType() { DomainEvents = new[] { "foo", "bar" }, ExtraData = new SomeData() { Property = "this is a property" } }; var serialized = JsonConvert.SerializeObject(classWithAnonymousType, GetSettingsForTest()); Console.WriteLine(serialized); var deserialized = JsonConvert.DeserializeObject <ClassWithAnonymousType>(serialized, GetSettingsForTest()); Assert.That(deserialized.ExtraData, Is.InstanceOf <SomeData>()); Assert.That(((SomeData)deserialized.ExtraData).Property, Is.EqualTo("this is a property")); }