Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
 }
Beispiel #4
0
            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);
            }
Beispiel #5
0
            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);
                }
            }
        }