Skip to content

Commit 8230a31

Browse files
andypeetersckadluba
authored andcommitted
Add unit tests related to the trimming functionality
1 parent 7393fc1 commit 8230a31

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/Output/StandardColumnDataGeneratorTests.cs

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,30 @@ public void GetStandardColumnNameAndValueForMessageReturnsSimpleTextMessageKeyVa
6363
Assert.Equal(messageText, result.Value);
6464
}
6565

66+
[Fact]
67+
public void GetStandardColumnNameAndValueForMessageReturnsTrimmedSimpleTextMessageKeyValue()
68+
{
69+
// Arrange
70+
const string messageText = "Test message";
71+
var messageTextWithOverflow = $"{messageText} being too long";
72+
var expectedMessageText = $"{messageText}...";
73+
var messageFieldLength = expectedMessageText.Length;
74+
75+
var logEvent = new LogEvent(
76+
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
77+
LogEventLevel.Debug, null, new MessageTemplate(new List<MessageTemplateToken>() { new TextToken(messageTextWithOverflow) }),
78+
new List<LogEventProperty>());
79+
var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions { Message = { DataLength = messageFieldLength } };
80+
SetupSut(columnOptions);
81+
82+
// Act
83+
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.Message, logEvent);
84+
85+
// Assert
86+
Assert.Equal("Message", result.Key);
87+
Assert.Equal(expectedMessageText, result.Value);
88+
}
89+
6690
[Fact]
6791
public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithDefaultFormatting()
6892
{
@@ -82,6 +106,33 @@ public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithDef
82106
Assert.Equal(expectedText, result.Value);
83107
}
84108

109+
[Fact]
110+
public void GetStandardColumnNameAndValueForMessageReturnsTrimmedMessageKeyValueWithDefaultFormatting()
111+
{
112+
// Arrange
113+
const string expectedText = "2.4 seconds...";
114+
var messageFieldLength = expectedText.Length;
115+
116+
var logEvent = new LogEvent(
117+
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
118+
LogEventLevel.Debug, null, new MessageTemplate(new List<MessageTemplateToken>()
119+
{
120+
new PropertyToken("NumberProperty", "{NumberProperty}"),
121+
new TextToken(" seconds duration")
122+
}),
123+
new List<LogEventProperty> { new LogEventProperty("NumberProperty", new ScalarValue(2.4)) });
124+
125+
var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions { Message = { DataLength = messageFieldLength } };
126+
SetupSut(columnOptions, CultureInfo.InvariantCulture);
127+
128+
// Act
129+
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.Message, logEvent);
130+
131+
// Assert
132+
Assert.Equal("Message", result.Key);
133+
Assert.Equal(expectedText, result.Value);
134+
}
135+
85136
[Fact]
86137
public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithCustomFormatting()
87138
{
@@ -101,6 +152,33 @@ public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithCus
101152
Assert.Equal(expectedText, result.Value);
102153
}
103154

155+
[Fact]
156+
public void GetStandardColumnNameAndValueForMessageReturnsTrimmedMessageKeyValueWithCustomFormatting()
157+
{
158+
// Arrange
159+
const string expectedText = "2,4 seconds...";
160+
var messageFieldLength = expectedText.Length;
161+
162+
var logEvent = new LogEvent(
163+
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
164+
LogEventLevel.Debug, null, new MessageTemplate(new List<MessageTemplateToken>()
165+
{
166+
new PropertyToken("NumberProperty", "{NumberProperty}"),
167+
new TextToken(" seconds duration")
168+
}),
169+
new List<LogEventProperty> { new LogEventProperty("NumberProperty", new ScalarValue(2.4)) });
170+
171+
var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions { Message = { DataLength = messageFieldLength } };
172+
SetupSut(columnOptions, new CultureInfo("de-AT"));
173+
174+
// Act
175+
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.Message, logEvent);
176+
177+
// Assert
178+
Assert.Equal("Message", result.Key);
179+
Assert.Equal(expectedText, result.Value);
180+
}
181+
104182
[Fact]
105183
public void GetStandardColumnNameAndValueForMessageTemplateReturnsMessageTemplateKeyValue()
106184
{
@@ -120,6 +198,30 @@ public void GetStandardColumnNameAndValueForMessageTemplateReturnsMessageTemplat
120198
Assert.Equal(messageTemplate.Text, result.Value);
121199
}
122200

201+
[Fact]
202+
public void GetStandardColumnNameAndValueForMessageTemplateReturnsTrimmedMessageTemplateKeyValue()
203+
{
204+
// Arrange
205+
var messageTemplate = new MessageTemplate(new List<MessageTemplateToken>() { new PropertyToken("NumberProperty", "{NumberProperty}") });
206+
var expectedMessageTemplate = $"{messageTemplate.Text.Substring(0, 7)}...";
207+
const int messageTemplateFieldLength = 10;
208+
209+
var logEvent = new LogEvent(
210+
new DateTimeOffset(2020, 1, 1, 0, 0, 0, 0, TimeSpan.Zero),
211+
LogEventLevel.Debug, null, messageTemplate,
212+
new List<LogEventProperty> { new LogEventProperty("NumberProperty", new ScalarValue(2.4)) });
213+
214+
var columnOptions = new Serilog.Sinks.MSSqlServer.ColumnOptions { MessageTemplate = { DataLength = messageTemplateFieldLength } };
215+
SetupSut(columnOptions, CultureInfo.InvariantCulture);
216+
217+
// Act
218+
var result = _sut.GetStandardColumnNameAndValue(StandardColumn.MessageTemplate, logEvent);
219+
220+
// Assert
221+
Assert.Equal("MessageTemplate", result.Key);
222+
Assert.Equal(expectedMessageTemplate, result.Value);
223+
}
224+
123225
[Fact]
124226
public void GetStandardColumnNameAndValueForLogLevelReturnsLogLevelKeyValue()
125227
{

0 commit comments

Comments
 (0)