public void ReadXmlWithoutProperties() { var xml = $"<san:Properties xmlns:s0='urn' xmlns:san='{SchemaAnnotation.NAMESPACE}' />"; using (var reader = XmlReader.Create(new StringReader(xml))) { var sut = new PropertyExtractorCollection(); sut.ReadXml(reader); sut.Should().BeEmpty(); } }
public void ReadXmlForConstantExtractor() { var xml = $"<san:Properties xmlns:s0='urn' xmlns:san='{SchemaAnnotation.NAMESPACE}'>" + "<s0:Property1 value='constant'/>" + "</san:Properties>"; using (var reader = XmlReader.Create(new StringReader(xml))) { var sut = new PropertyExtractorCollection(); sut.ReadXml(reader); sut.Should().BeEquivalentTo(new ConstantExtractor(new XmlQualifiedName("Property1", "urn"), "constant", ExtractionMode.Write)); } }
public void ReadXmlForXPathExtractorWithPromotedAttribute() { var xml = $"<san:Properties xmlns:s0='urn' xmlns:san='{SchemaAnnotation.NAMESPACE}'>" + "<s0:Property2 promoted='true' xpath='*/other-node'/>" + "</san:Properties>"; using (var reader = XmlReader.Create(new StringReader(xml))) { var sut = new PropertyExtractorCollection(); sut.ReadXml(reader); sut.Should().BeEquivalentTo(new XPathExtractor(new XmlQualifiedName("Property2", "urn"), "*/other-node", ExtractionMode.Promote)); } }
public void ReadXmlForQNameValueExtractorFallsBackOnXPathExtractorWhenQNameValueExtractionModeIsDefault() { var xml = $"<san:Properties xmlns:s0='urn' xmlns:san='{SchemaAnnotation.NAMESPACE}'>" + "<s0:Property3 mode='promote' qnameValue='name' xpath='*/extra-node'/>" + "</san:Properties>"; using (var reader = XmlReader.Create(new StringReader(xml))) { var sut = new PropertyExtractorCollection(); sut.ReadXml(reader); sut.Should().BeEquivalentTo(new XPathExtractor(new XmlQualifiedName("Property3", "urn"), "*/extra-node", ExtractionMode.Promote)); } }
public void ReadXml() { var xml = $"<san:Properties xmlns:s0='urn' xmlns:san='{SchemaAnnotation.NAMESPACE}'>" + "<s0:Property1 xpath='*/some-node'/>" + "<s0:Property2 promoted='true' xpath='*/other-node'/>" + "<s0:Property3 mode='write' value='constant'/>" + "<s0:Property4 mode='clear'/>" + "</san:Properties>"; using (var reader = XmlReader.Create(new StringReader(xml))) { var sut = new PropertyExtractorCollection(); sut.ReadXml(reader); sut.Should().BeEquivalentTo( new XPathExtractor(new XmlQualifiedName("Property1", "urn"), "*/some-node", ExtractionMode.Write), new XPathExtractor(new XmlQualifiedName("Property2", "urn"), "*/other-node", ExtractionMode.Promote), new ConstantExtractor(new XmlQualifiedName("Property3", "urn"), "constant", ExtractionMode.Write), new PropertyExtractor(new XmlQualifiedName("Property4", "urn"), ExtractionMode.Clear) ); } }