@@ -63,6 +63,30 @@ public void GetStandardColumnNameAndValueForMessageReturnsSimpleTextMessageKeyVa
63
63
Assert . Equal ( messageText , result . Value ) ;
64
64
}
65
65
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
+
66
90
[ Fact ]
67
91
public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithDefaultFormatting ( )
68
92
{
@@ -82,6 +106,33 @@ public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithDef
82
106
Assert . Equal ( expectedText , result . Value ) ;
83
107
}
84
108
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
+
85
136
[ Fact ]
86
137
public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithCustomFormatting ( )
87
138
{
@@ -101,6 +152,33 @@ public void GetStandardColumnNameAndValueForMessageReturnsMessageKeyValueWithCus
101
152
Assert . Equal ( expectedText , result . Value ) ;
102
153
}
103
154
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
+
104
182
[ Fact ]
105
183
public void GetStandardColumnNameAndValueForMessageTemplateReturnsMessageTemplateKeyValue ( )
106
184
{
@@ -120,6 +198,30 @@ public void GetStandardColumnNameAndValueForMessageTemplateReturnsMessageTemplat
120
198
Assert . Equal ( messageTemplate . Text , result . Value ) ;
121
199
}
122
200
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
+
123
225
[ Fact ]
124
226
public void GetStandardColumnNameAndValueForLogLevelReturnsLogLevelKeyValue ( )
125
227
{
0 commit comments