コード例 #1
0
        public void VerifyConfiguration()
        {
            var subject = new Subject {
                Message = "Hello World!"
            };

            subject.Set(NumberProperty.Default, 6776);

            var container = new ConfigurationContainer();

            container.UseAutoFormatting()
            .Type <NumberProperty>()
            .Name("ConfiguredAttachedProperty");

            container.AttachedProperty(() => NumberProperty.Default)
            .Name("NewNumberPropertyName");
            var serializer = new SerializationSupport(container);

            var actual = serializer.Assert(subject,
                                           @"<?xml version=""1.0"" encoding=""utf-8""?><AttachedPropertiesExtensionTests-Subject Message=""Hello World!"" ConfiguredAttachedProperty.NewNumberPropertyName=""6776"" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.ExtensionModel.AttachedProperties;assembly=ExtendedXmlSerializer.Tests"" />");

            actual.Should().BeEquivalentTo(subject);
            actual.Get(NumberProperty.Default)
            .Should()
            .Be(6776);
        }
コード例 #2
0
        public void Verify()
        {
            var configuration = new ConfigurationContainer();

            configuration.UseAutoFormatting();
            var instance = new Subject
            {
                Struct = new ItemStruct()
            };

            var serializer = configuration.Create();

            serializer.Cycle(instance).Should().BeEquivalentTo(instance);
        }
コード例 #3
0
        public void ConfiguredCreatedTuple()
        {
            var container = new ConfigurationContainer();

            container.UseAutoFormatting()
            .EnableParameterizedContent()
            .Type <Tuple <string, int, TypeCode> >()
            .Member(x => x.Item1, m => m.Name("Message"))
            .Member(x => x.Item2, m => m.Name("Number"))
            .Member(x => x.Item3, m => m.Name("Codez"));
            var serializer = new SerializationSupport(container);
            var expected   = Tuple.Create("Hello World!", 6776, TypeCode.Empty);
            var actual     = serializer.Assert(expected,
                                               @"<?xml version=""1.0"" encoding=""utf-8""?><Tuple xmlns:exs=""https://extendedxmlserializer.github.io/v2"" exs:arguments=""string,int,TypeCode"" Message=""Hello World!"" Number=""6776"" Codez=""Empty"" xmlns=""https://extendedxmlserializer.github.io/system"" />");

            actual.ShouldBeEquivalentTo(expected);
        }
コード例 #4
0
        public void ConfigureEncryptDifferenetOrder()
        {
            var container = new ConfigurationContainer();

            container.UseAutoFormatting();

            Assert.Null(container.Root.Find <EncryptionExtension>());
            container.Type <TestClassWithEncryptedData>()
            .Member(p => p.Password, x => x.Encrypt())
            .Member(p => p.Salary)
            .Encrypt();

            container.UseEncryptionAlgorithm();

            var extension = container.Root.Find <EncryptionExtension>();

            Assert.NotNull(extension);
            var type = container.GetTypeConfiguration(typeof(TestClassWithEncryptedData));

            Assert.NotNull(type);

            var member   = type.Member(nameof(TestClassWithEncryptedData.Salary));
            var property = ((ISource <MemberInfo>)member).Get();

            Assert.NotNull(property);
            Assert.Contains(property, extension.Registered);

            const int salary   = 6776;
            var       instance = new TestClassWithEncryptedData {
                Salary = salary
            };
            var actual =
                new SerializationSupport(container).Assert(instance,
                                                           @"<?xml version=""1.0"" encoding=""utf-8""?><TestClassWithEncryptedData Salary=""Njc3Ng=="" xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.TestObject;assembly=ExtendedXmlSerializer.Tests"" />");

            Assert.Equal(salary, actual.Salary);
        }