public void SpecificChildInheritance() { var first = new ChildClass { Name = "Key" }; var instance = new Container { First = first, Second = first }; var container = new ConfigurationContainer(); container.ConfigureType <ChildClass>() .EnableReferences(x => x.Name); var support = new SerializationSupport(container); var actual = support.Cycle(instance); actual.First.Should() .NotBeNull() .And.BeOfType <ChildClass>() .And.BeSameAs(actual.Second); }
public void ConfigureEncryptDifferenetOrder() { var container = new ConfigurationContainer(); container.UseAutoFormatting(); Assert.Null(container.Root.Find <EncryptionExtension>()); container.ConfigureType <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); }