private static void TestSerializationOnXmlSerializer(Action <ISerializer, ISerializationConfiguration, string> action, bool testWithoutGraphIdsAsWell = true, ISerializationManager serializationManager = null) { var serializers = new List <ISerializer>(); serializers.Add(SerializationTestHelper.GetXmlSerializer(serializationManager)); TestSerializationOnSerializers(serializers, action, serializationManager); }
private static void TestSerializationOnAllSerializers(Action <ISerializer, ISerializationConfiguration, string> action, bool testWithoutGraphIdsAsWell = true, ISerializationManager serializationManager = null) { var serializers = new List <ISerializer>(); serializers.Add(SerializationTestHelper.GetXmlSerializer(serializationManager)); serializers.Add(SerializationTestHelper.GetBinarySerializer(serializationManager)); serializers.Add(SerializationTestHelper.GetJsonSerializer(serializationManager)); if (testWithoutGraphIdsAsWell) { var basicJsonSerializer = SerializationTestHelper.GetJsonSerializer(serializationManager); basicJsonSerializer.PreserveReferences = false; basicJsonSerializer.WriteTypeInfo = false; serializers.Add(basicJsonSerializer); } TestSerializationOnSerializers(serializers, action, serializationManager); }
private void TestXmlSerializationWithExpectedFormat(object obj, ISerializationManager serializationManager = null, [CallerMemberName] string name = null) { TestSerializationWithExpectedFormat(SerializationTestHelper.GetXmlSerializer(serializationManager), name, obj); }
public void SerializesModelsWithOnlyAttributes(XmlSerializerOptimalizationMode mode) { var family = new XmlFamily(); family.LastName = "van Horrik"; family.ModelsWithAttributesOnly.Add(new XmlModelWithAttributesOnly { FirstName = "Geert", }); var newFamily = SerializationTestHelper.SerializeAndDeserialize(family, SerializationTestHelper.GetXmlSerializer(), new XmlSerializationConfiguration { OptimalizationMode = mode }); Assert.AreEqual(family.LastName, newFamily.LastName); Assert.AreEqual(1, newFamily.ModelsWithAttributesOnly.Count); var newModelWithAttributesOnly = newFamily.ModelsWithAttributesOnly.First(); Assert.AreEqual(family.ModelsWithAttributesOnly[0].FirstName, newModelWithAttributesOnly.FirstName); }
public void RespectsTheXmlAttributeAttributeOnRootElements(XmlSerializerOptimalizationMode mode) { var family = new XmlFamily(); family.LastName = "van Horrik"; family.Persons.Add(new XmlPerson { FirstName = "Geert", LastName = family.LastName, Gender = Gender.Male }); var newFamily = SerializationTestHelper.SerializeAndDeserialize(family, SerializationTestHelper.GetXmlSerializer(), new XmlSerializationConfiguration { OptimalizationMode = mode }); Assert.AreEqual(family.LastName, newFamily.LastName); Assert.AreEqual(1, newFamily.Persons.Count); var newPerson = newFamily.Persons.First(); Assert.AreEqual(family.Persons[0].FirstName, newPerson.FirstName); Assert.AreEqual(family.Persons[0].LastName, newPerson.LastName); Assert.AreEqual(family.Persons[0].Gender, newPerson.Gender); }
private static void TestSerializationOnAllSerializers(Action <ISerializer, ISerializationConfiguration, string> action, bool testWithoutGraphIdsAsWell = true, ISerializationManager serializationManager = null) { if (serializationManager == null) { serializationManager = new SerializationManager(); } var serializerConfigurations = new Dictionary <Type, List <ISerializationConfiguration> >(); serializerConfigurations[typeof(XmlSerializer)] = new List <ISerializationConfiguration>(new[] { new XmlSerializationConfiguration { OptimalizationMode = XmlSerializerOptimalizationMode.Performance }, new XmlSerializationConfiguration { OptimalizationMode = XmlSerializerOptimalizationMode.PrettyXml }, //new XmlSerializationConfiguration //{ // OptimalizationMode = XmlSerializerOptimalizationMode.PrettyXmlAgressive //}, }); serializerConfigurations[typeof(BinarySerializer)] = new List <ISerializationConfiguration>(new[] { new SerializationConfiguration() }); serializerConfigurations[typeof(JsonSerializer)] = new List <ISerializationConfiguration>(new[] { new JsonSerializationConfiguration { UseBson = false }, new JsonSerializationConfiguration { UseBson = true }, }); var serializers = new List <ISerializer>(); serializers.Add(SerializationTestHelper.GetXmlSerializer(serializationManager)); serializers.Add(SerializationTestHelper.GetBinarySerializer(serializationManager)); serializers.Add(SerializationTestHelper.GetJsonSerializer(serializationManager)); if (testWithoutGraphIdsAsWell) { var basicJsonSerializer = SerializationTestHelper.GetJsonSerializer(serializationManager); basicJsonSerializer.PreserveReferences = false; basicJsonSerializer.WriteTypeInfo = false; serializers.Add(basicJsonSerializer); } foreach (var serializer in serializers) { var type = serializer.GetType(); var typeName = type.GetSafeFullName(false); var configurations = serializerConfigurations[type]; foreach (var configuration in configurations) { Log.Info(); Log.Info(); Log.Info(); Log.Info("=== TESTING SERIALIZER: {0} ===", typeName); Log.Info(); Log.Info(); Log.Info(); action(serializer, configuration, typeName); } } }