public void SimplifySequenceReplacesXmlInvalidCharsInValue() { // Arrange var input = new SequenceValue(new List <LogEventPropertyValue> { new ScalarValue("some<allowed>words&inbetween") }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions(); var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<sequence><item>some<allowed>words&inbetween</item></sequence>", result); }
public void SimplifyDictionaryReplacesXmlInvalidCharsInKey() { // Arrange var input = new DictionaryValue(new List <KeyValuePair <ScalarValue, LogEventPropertyValue> > { new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("some<allowed>words&inbetween"), new ScalarValue("Value1")) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions(); var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<dictionary><item key='some<allowed>words&inbetween'>Value1</item></dictionary>", result); }
public void SimplifyStructureRendersElements() { // Arrange var input = new StructureValue(new List <LogEventProperty> { new LogEventProperty("Key1", new ScalarValue("Value1")), new LogEventProperty("Key2", new ScalarValue(2)) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions(); var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<structure type=''><property key='Key1'>Value1</property><property key='Key2'>2</property></structure>", result); }
public void SimplifyDictionaryRendersElements() { // Arrange var input = new DictionaryValue(new List <KeyValuePair <ScalarValue, LogEventPropertyValue> > { new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("Key1"), new ScalarValue("Value1")), new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("Key2"), new ScalarValue(2)) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions(); var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<dictionary><item key='Key1'>Value1</item><item key='Key2'>2</item></dictionary>", result); }
public void SimplifySequenceRendersElements() { // Arrange var input = new SequenceValue(new List <LogEventPropertyValue> { new ScalarValue("Value1"), new ScalarValue(2) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions(); var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<sequence><item>Value1</item><item>2</item></sequence>", result); }
public void SimplifyStructureFixesElementNamesIfUsePropertyKeyAsElementNameIsTrue() { // Arrange var input = new StructureValue(new List <LogEventProperty> { new LogEventProperty("xml Key With Space", new ScalarValue("Value1")) }, "5structure\ttype"); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { UsePropertyKeyAsElementName = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<x5structure_type><xxml_Key_With_Space>Value1</xxml_Key_With_Space></x5structure_type>", result); }
public void SimplifyDictionaryHandlesOptionUsePropertyKeyAsElementName() { // Arrange var input = new DictionaryValue(new List <KeyValuePair <ScalarValue, LogEventPropertyValue> > { new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("Key1"), new ScalarValue("Value1")), new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("Key2"), new ScalarValue(2)) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { UsePropertyKeyAsElementName = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<dictionary><Key1>Value1</Key1><Key2>2</Key2></dictionary>", result); }
public void SimplifyStructureHandlesOptionOmitStructureContainerElement() { // Arrange var input = new StructureValue(new List <LogEventProperty> { new LogEventProperty("Key1", new ScalarValue("Value1")), new LogEventProperty("Key2", new ScalarValue(2)) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { OmitStructureContainerElement = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<property key='Key1'>Value1</property><property key='Key2'>2</property>", result); }
public void SimplifyStructureHandlesOptionUsePropertyKeyAsElementName() { // Arrange var input = new StructureValue(new List <LogEventProperty> { new LogEventProperty("Key1", new ScalarValue("Value1")), new LogEventProperty("Key2", new ScalarValue(2)) }, "structuretype"); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { UsePropertyKeyAsElementName = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<structuretype><Key1>Value1</Key1><Key2>2</Key2></structuretype>", result); }
public void SimplifySequenceUsesCustomItemElementName() { // Arrange var input = new SequenceValue(new List <LogEventPropertyValue> { new ScalarValue("Value1"), new ScalarValue("Value2") }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { ItemElementName = "element" }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<sequence><element>Value1</element><element>Value2</element></sequence>", result); }
public void SimplifySequenceHandlesOptionOmitSequenceContainerElement() { // Arrange var input = new SequenceValue(new List <LogEventPropertyValue> { new ScalarValue("Value1"), new ScalarValue("Value2") }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { OmitSequenceContainerElement = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<item>Value1</item><item>Value2</item>", result); }
public void SimplifyDictionaryHandlesOptionOmitDictionaryContainerElement() { // Arrange var input = new DictionaryValue(new List <KeyValuePair <ScalarValue, LogEventPropertyValue> > { new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("Key1"), new ScalarValue("Value1")), new KeyValuePair <ScalarValue, LogEventPropertyValue>(new ScalarValue("Key2"), new ScalarValue("Value2")) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { OmitDictionaryContainerElement = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<item key='Key1'>Value1</item><item key='Key2'>Value2</item>", result); }
public void SimplifyStructureHandlesOptionOmitElementIfEmpty() { // Arrange var input = new StructureValue(new List <LogEventProperty> { new LogEventProperty("Key1", new ScalarValue(string.Empty)), new LogEventProperty("Key2", new ScalarValue("Value2")), new LogEventProperty("Key3", new ScalarValue(null)) }); var options = new Serilog.Sinks.MSSqlServer.ColumnOptions.PropertiesColumnOptions { OmitElementIfEmpty = true }; var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, options); // Assert Assert.Equal("<structure type=''><property key='Key2'>Value2</property></structure>", result); }