Skip to content

Commit 94d1450

Browse files
committed
Added unit testst for audit sink Emit() and sink EmitBatch() methods.
1 parent 2f7c2b9 commit 94d1450

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed

test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerAuditSinkTests.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.Data;
34
using Moq;
5+
using Serilog.Events;
6+
using Serilog.Parsing;
47
using Serilog.Sinks.MSSqlServer.Platform;
58
using Serilog.Sinks.MSSqlServer.Sinks.MSSqlServer.Dependencies;
69
using Serilog.Sinks.MSSqlServer.Sinks.MSSqlServer.Options;
@@ -153,6 +156,25 @@ public void InitializeWithoutAutoCreateSqlTableDoesNotCallSqlTableCreator()
153156
_sqlTableCreatorMock.Verify(c => c.CreateTable(It.IsAny<DataTable>()), Times.Never);
154157
}
155158

159+
[Fact]
160+
public void EmitCallsSqlLogEventWriter()
161+
{
162+
// Arrange
163+
SetupSut();
164+
var logEvent = new Events.LogEvent(
165+
new DateTimeOffset(2020, 1, 1, 0, 0, 0, TimeSpan.Zero),
166+
Events.LogEventLevel.Information,
167+
null,
168+
new Events.MessageTemplate("", new List<MessageTemplateToken>()),
169+
new List<LogEventProperty>());
170+
171+
// Act
172+
_sut.Emit(logEvent);
173+
174+
// Assert
175+
_sqlLogEventWriter.Verify(w => w.WriteEvent(logEvent), Times.Once);
176+
}
177+
156178
private void SetupSut(bool autoCreateSqlTable = false)
157179
{
158180
_sinkOptions.AutoCreateSqlTable = autoCreateSqlTable;

test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerSinkTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
using System;
2+
using System.Collections.Generic;
23
using System.Data;
4+
using System.Linq;
35
using Moq;
6+
using Serilog.Events;
47
using Serilog.Sinks.MSSqlServer.Platform;
58
using Serilog.Sinks.MSSqlServer.Sinks.MSSqlServer.Dependencies;
69
using Serilog.Sinks.MSSqlServer.Sinks.MSSqlServer.Options;
@@ -125,6 +128,31 @@ public void InitializeWithoutAutoCreateSqlTableDoesNotCallSqlTableCreator()
125128
_sqlTableCreatorMock.Verify(c => c.CreateTable(It.IsAny<DataTable>()), Times.Never);
126129
}
127130

131+
[Fact]
132+
public void EmitCallsSqlLogEventWriter()
133+
{
134+
// Arrange
135+
const string messageTemplate = "Message Template";
136+
SetupSut();
137+
_sqlBulkBatchWriter.Setup(w => w.WriteBatch(It.IsAny<IEnumerable<LogEvent>>(), _dataTable))
138+
.Callback<IEnumerable<LogEvent>, DataTable>((e, d) =>
139+
{
140+
Assert.Single(e);
141+
Assert.Equal(messageTemplate, e.First().MessageTemplate.Text);
142+
});
143+
Log.Logger = new LoggerConfiguration()
144+
.WriteTo
145+
.Sink(_sut, LogEventLevel.Debug)
146+
.CreateLogger();
147+
148+
// Act
149+
Log.Logger.Information(messageTemplate);
150+
Log.CloseAndFlush();
151+
152+
// Assert
153+
_sqlBulkBatchWriter.Verify(w => w.WriteBatch(It.IsAny<IEnumerable<LogEvent>>(), _dataTable), Times.Once);
154+
}
155+
128156
private void SetupSut(bool autoCreateSqlTable = false)
129157
{
130158
_sinkOptions.AutoCreateSqlTable = autoCreateSqlTable;

0 commit comments

Comments
 (0)