public void GetValidElementNameTrimsWhitespace() { // Arrange var sut = new XmlPropertyFormatter(); // Act var result = sut.GetValidElementName(" \tname \t"); // Assert Assert.Equal("name", result); }
public void GetValidElementNameReplacesEnclosedWhitespaceWithUnderscore() { // Arrange var sut = new XmlPropertyFormatter(); // Act var result = sut.GetValidElementName("Name\tWith Space"); // Assert Assert.Equal("Name_With___Space", result); }
public void GetValidElementNamePrependsXIfNonLetterAtBegin() { // Arrange var sut = new XmlPropertyFormatter(); // Act var result = sut.GetValidElementName("$Name"); // Assert Assert.Equal("x$Name", result); }
public void GetValidElementNameReturnsValidNameOnEmpty() { // Arrange var sut = new XmlPropertyFormatter(); // Act var result = sut.GetValidElementName(string.Empty); // Assert Assert.Equal("x", result); }
public void SimplifyScalarReplacesXmlInvalidChars() { // Arrange var input = new ScalarValue("some<allowed>words&inbetween"); var sut = new XmlPropertyFormatter(); // Act var result = sut.Simplify(input, null); // Assert Assert.Equal("some<allowed>words&inbetween", result); }
public void GetValidElementNamePrependsXIfXmlAtBeginCaseInsensitive() { // Arrange var sut = new XmlPropertyFormatter(); // Act + assert var result = sut.GetValidElementName("xmlName"); Assert.Equal("xxmlName", result); // Act + assert var result2 = sut.GetValidElementName("XmlName"); Assert.Equal("xXmlName", result2); }
public void GetValidElementNameTrimsWhitespaceAndPrependsXIfInvalidBegin() { // Arrange var sut = new XmlPropertyFormatter(); // Act + assert var result = sut.GetValidElementName(" xmlName "); Assert.Equal("xxmlName", result); // Act + assert var result2 = sut.GetValidElementName(" 4Name "); Assert.Equal("x4Name", result2); }
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 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 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 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 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 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 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 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 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); }