public void DeserializeComplexTypeWithDefaultXmlSerialization() { var xml = $@"<mComponents> <mComponent name='{typeof(DummyXmlTranslator).AssemblyQualifiedName}'> <Enabled>true</Enabled> <xt:Translations override='false' xmlns:xt='urn:schemas.stateless.be:biztalk:translations:2013:07'> <xt:NamespaceTranslation matchingPattern='sourceUrn1' replacementPattern='urn:test1' /> <xt:NamespaceTranslation matchingPattern='sourceUrn5' replacementPattern='urn:test5' /> </xt:Translations> </mComponent> </mComponents>"; var sut = new MicroComponentEnumerableConverter(); var deserialized = sut.ConvertFrom(xml) as IMicroComponent[]; deserialized.Should().BeEquivalentTo( new object[] { new DummyXmlTranslator { Enabled = true, Translations = new() { Override = false, Items = new[] { new XmlNamespaceTranslation("sourceUrn1", "urn:test1"), new XmlNamespaceTranslation("sourceUrn5", "urn:test5") } } } });
public void ConvertFrom() { var xml = $@"<mComponents> <mComponent name='{typeof(DummyMicroComponentOne).AssemblyQualifiedName}'> <Property-One>1</Property-One> <Property-Two>2</Property-Two> </mComponent> <mComponent name='{typeof(DummyMicroComponentTwo).AssemblyQualifiedName}' > <Property-Six>6</Property-Six> <Property-Ten>9</Property-Ten> </mComponent> <mComponent name='{typeof(DummyMicroComponentTen).AssemblyQualifiedName}'> <Encoding>utf-8</Encoding> <Index>10</Index> <Requirements>Default</Requirements> <Name>DummyTen</Name> <Plugin>{typeof(DummyXmlTranslator).AssemblyQualifiedName}</Plugin> </mComponent> </mComponents>"; var sut = new MicroComponentEnumerableConverter(); var result = sut.ConvertFrom(xml) as IEnumerable <IMicroComponent>; result.Should().NotBeNull().And.BeEquivalentTo( new object[] { new DummyMicroComponentOne { One = "1", Two = "2" }, new DummyMicroComponentTwo { Six = "6", Ten = "9" }, new DummyMicroComponentTen { Encoding = new UTF8Encoding(false), Index = 10, Requirements = XmlTranslationRequirements.Default, Name = "DummyTen", Plugin = typeof(DummyXmlTranslator) } }); }
public void DeserializeComplexTypeWithCustomXmlSerialization() { var xml = $@"<mComponents> <mComponent name='{typeof(DummyContextPropertyExtractor).AssemblyQualifiedName}'> <Enabled>true</Enabled> <Extractors> <s0:Properties xmlns:s0='urn:schemas.stateless.be:biztalk:annotations:2013:01' xmlns:s1='urn'> <s1:Property1 xpath='*/some-node' /> <s1:Property2 promoted='true' xpath='*/other-node' /> </s0:Properties> </Extractors> </mComponent> <mComponent name='{typeof(DummyMicroComponentOne).AssemblyQualifiedName}'> <Property-One>1</Property-One> <Property-Two>2</Property-Two> </mComponent> </mComponents>"; var sut = new MicroComponentEnumerableConverter(); var deserialized = sut.ConvertFrom(xml) as IMicroComponent[]; deserialized.Should().BeEquivalentTo( new object[] { new DummyContextPropertyExtractor { Enabled = true, Extractors = new[] { new XPathExtractor(new XmlQualifiedName("Property1", "urn"), "*/some-node"), new XPathExtractor(new XmlQualifiedName("Property2", "urn"), "*/other-node", ExtractionMode.Promote) } }, new DummyMicroComponentOne { One = "1", Two = "2" } }); }
public void ConvertFromEmpty() { var sut = new MicroComponentEnumerableConverter(); sut.ConvertFrom(string.Empty).Should().BeSameAs(Enumerable.Empty <IMicroComponent>()); }