Beispiel #1
0
        public void TestConfigureClassic_Version0_9_DefaultIsReplaced()
        {
            var previous = SerializationContext.Default;

            try
            {
                var result = SerializationContext.ConfigureClassic(SerializationCompatibilityLevel.Version0_9);

                // result is old.
                Assert.That(result, Is.SameAs(previous));
                // result is default settings.
                Assert.That(result, Is.Not.Null);
                Assert.That(result.DefaultDateTimeConversionMethod, Is.EqualTo(DateTimeConversionMethod.Timestamp));
                Assert.That(result.CompatibilityOptions.PackerCompatibilityOptions, Is.EqualTo(PackerCompatibilityOptions.None));
                Assert.That(result.EnumSerializationOptions.SerializationMethod, Is.EqualTo(EnumSerializationMethod.ByName));
#if !AOT && !UNITY && !SILVERLIGHT
                Assert.That(result.SerializerOptions.GeneratorOption, Is.EqualTo(SerializationMethodGeneratorOption.Fast));
#endif // !AOT && !UNITY && !SILVERLIGHT
                Assert.That(result.SerializationMethod, Is.EqualTo(SerializationMethod.Array));

                // default is now classic 0.9
                Assert.That(SerializationContext.Default, Is.Not.Null);
                Assert.That(SerializationContext.Default.DefaultDateTimeConversionMethod, Is.EqualTo(DateTimeConversionMethod.Native));
                Assert.That(SerializationContext.Default.CompatibilityOptions.PackerCompatibilityOptions, Is.EqualTo(PackerCompatibilityOptions.None));
                Assert.That(SerializationContext.Default.EnumSerializationOptions.SerializationMethod, Is.EqualTo(EnumSerializationMethod.ByName));
#if !AOT && !UNITY && !SILVERLIGHT
                Assert.That(SerializationContext.Default.SerializerOptions.GeneratorOption, Is.EqualTo(SerializationMethodGeneratorOption.Fast));
#endif // !AOT && !UNITY && !SILVERLIGHT
                Assert.That(SerializationContext.Default.SerializationMethod, Is.EqualTo(SerializationMethod.Array));
            }
            finally
            {
                SerializationContext.Default = previous;
            }

            // Verify restore
            Assert.That(SerializationContext.Default.DefaultDateTimeConversionMethod, Is.EqualTo(DateTimeConversionMethod.Timestamp));
            Assert.That(SerializationContext.Default.CompatibilityOptions.PackerCompatibilityOptions, Is.EqualTo(PackerCompatibilityOptions.None));
            Assert.That(SerializationContext.Default.EnumSerializationOptions.SerializationMethod, Is.EqualTo(EnumSerializationMethod.ByName));
#if !AOT && !UNITY && !SILVERLIGHT
            Assert.That(SerializationContext.Default.SerializerOptions.GeneratorOption, Is.EqualTo(SerializationMethodGeneratorOption.Fast));
#endif // !AOT && !UNITY && !SILVERLIGHT
            Assert.That(SerializationContext.Default.SerializationMethod, Is.EqualTo(SerializationMethod.Array));
        }
Beispiel #2
0
        public void TestConfigureClassic_DefaultIsReplaced()
        {
            var previous = SerializationContext.Default;

            try
            {
                var result = SerializationContext.ConfigureClassic();

                // result is old.
                Assert.That(result, Is.SameAs(previous));
                // result is default settings.
                Assert.That(result, Is.Not.Null);
                Assert.That(result.DefaultDateTimeConversionMethod, Is.EqualTo(DateTimeConversionMethod.Native));
                Assert.That(result.EnumSerializationMethod, Is.EqualTo(EnumSerializationMethod.ByName));
#if !XAMIOS && !UNITY
                Assert.That(result.GeneratorOption, Is.EqualTo(SerializationMethodGeneratorOption.Fast));
#endif // !XAMIOS && !UNITY
                Assert.That(result.SerializationMethod, Is.EqualTo(SerializationMethod.Array));

                // default is now classic
                Assert.That(SerializationContext.Default, Is.Not.Null);
                Assert.That(SerializationContext.Default.DefaultDateTimeConversionMethod, Is.EqualTo(DateTimeConversionMethod.UnixEpoc));
                Assert.That(SerializationContext.Default.EnumSerializationMethod, Is.EqualTo(EnumSerializationMethod.ByName));
#if !XAMIOS && !UNITY
                Assert.That(SerializationContext.Default.GeneratorOption, Is.EqualTo(SerializationMethodGeneratorOption.Fast));
#endif // !XAMIOS && !UNITY
                Assert.That(SerializationContext.Default.SerializationMethod, Is.EqualTo(SerializationMethod.Array));
            }
            finally
            {
                SerializationContext.Default = previous;
            }

            // Verify restore
            Assert.That(SerializationContext.Default.DefaultDateTimeConversionMethod, Is.EqualTo(DateTimeConversionMethod.Native));
            Assert.That(SerializationContext.Default.EnumSerializationMethod, Is.EqualTo(EnumSerializationMethod.ByName));
#if !XAMIOS && !UNITY
            Assert.That(SerializationContext.Default.GeneratorOption, Is.EqualTo(SerializationMethodGeneratorOption.Fast));
#endif // !XAMIOS && !UNITY
            Assert.That(SerializationContext.Default.SerializationMethod, Is.EqualTo(SerializationMethod.Array));
        }
Beispiel #3
0
        public void TestIssue73()
        {
            var original = SerializationContext.ConfigureClassic();

            try
            {
                var value =
                    new Dictionary <string, object> {
                    { "1", new object() }, { "2", new object() }
                };
                var serializer = MessagePackSerializer.Get <Dictionary <string, object> >(new SerializationContext());
                using (var buffer = new MemoryStream())
                {
                    Assert.Throws <SerializationException>(() => serializer.Pack(buffer, value));
                }
            }
            finally
            {
                SerializationContext.Default = original;
            }
        }