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); }
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); }
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); }
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); }