コード例 #1
0
        public void ConfigureEncrypt()
        {
            var configuration = new ConfigurationContainer();

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

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

            Assert.NotNull(extension);
            var type = configuration.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 support = new SerializationSupport(configuration);
            var actual  = support.Assert(instance, @"<?xml version=""1.0"" encoding=""utf-8""?><TestClassWithEncryptedData xmlns=""clr-namespace:ExtendedXmlSerializer.Tests.TestObject;assembly=ExtendedXmlSerializer.Tests""><Salary>Njc3Ng==</Salary></TestClassWithEncryptedData>");

            Assert.Equal(salary, actual.Salary);
        }
コード例 #2
0
        public void ConfigureEntityType()
        {
            var configuration = new ConfigurationContainer();

            Assert.Null(configuration.Root.Find <ReferencesExtension>());
            configuration.EnableReferences();
            var configType = configuration.GetTypeConfiguration(typeof(TestClassPrimitiveTypes));
            var extension  = configuration.Root.Find <ReferencesExtension>();

            Assert.NotNull(extension);
            Assert.Null(extension.Get(configType.Get()));
        }
コード例 #3
0
        public void Verify()
        {
            IConfigurationContainer container = new ConfigurationContainer();
            var properties = typeof(Subject).GetProperties();
            var type       = container.GetTypeConfiguration(typeof(Subject));

            foreach (var property in properties)
            {
                if (property.IsDecoratedWith <CustomAttribute>())
                {
                    container = type.Get(property).Ignore(property);
                }
            }

            var sut      = container.Create().ForTesting();
            var instance = new Subject {
                Message = "Serialized", AnotherMessage = "Ignored"
            };
            var cycled = sut.Cycle(instance);

            cycled.Message.Should().NotBeNullOrEmpty();
            cycled.AnotherMessage.Should().BeNull();
        }