public void WriteXml() { var xml = string.Format( "<s0:Properties xmlns:s0=\"{0}\" xmlns:s1=\"urn\">" + "<s1:Property1 xpath=\"*/some-node\" />" + "<s1:Property2 mode=\"promote\" xpath=\"*/other-node\" />" + "<s1:Property3 mode=\"promote\" value=\"constant\" />" + "<s1:Property4 mode=\"clear\" />" + "</s0:Properties>", SchemaAnnotations.NAMESPACE); var builder = new StringBuilder(); using (var writer = XmlWriter.Create(builder, new XmlWriterSettings { OmitXmlDeclaration = true })) { var sut = new PropertyExtractorCollection( 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.Promote), new PropertyExtractor(new XmlQualifiedName("Property4", "urn"), ExtractionMode.Clear)); sut.WriteXml(writer); } Assert.That(builder.ToString(), Is.EqualTo(xml)); }
public static string Serialize(PropertyExtractorCollection extractors) { if (!extractors.Any()) { return(null); } using (var stringWriter = new StringWriter()) using (var writer = XmlWriter.Create(stringWriter, new XmlWriterSettings { OmitXmlDeclaration = true })) { extractors.WriteXml(writer); writer.Flush(); return(stringWriter.ToString()); } }
public void WriteXmlForExtractorPrecedence() { var xml = string.Format( "<s0:Properties precedence=\"pipelineOnly\" xmlns:s0=\"{0}\" xmlns:s1=\"urn\">" + "<s1:Property1 xpath=\"*/some-node\" />" + "</s0:Properties>", SchemaAnnotations.NAMESPACE); var builder = new StringBuilder(); using (var writer = XmlWriter.Create(builder, new XmlWriterSettings { OmitXmlDeclaration = true })) { var sut = new PropertyExtractorCollection( ExtractorPrecedence.PipelineOnly, new XPathExtractor(new XmlQualifiedName("Property1", "urn"), "*/some-node", ExtractionMode.Write)); sut.WriteXml(writer); } Assert.That(builder.ToString(), Is.EqualTo(xml)); }