diff --git a/src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerSink.cs b/src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerSink.cs index 9c46fb86..d81f674a 100644 --- a/src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerSink.cs +++ b/src/Serilog.Sinks.MSSqlServer/Sinks/MSSqlServer/MSSqlServerSink.cs @@ -151,6 +151,7 @@ protected virtual void Dispose(bool disposing) { if (disposing) { + _sqlBulkBatchWriter.Dispose(); _sqlLogEventWriter.Dispose(); } diff --git a/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerAuditSinkTests.cs b/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerAuditSinkTests.cs index 4afebc9b..33389ad4 100644 --- a/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerAuditSinkTests.cs +++ b/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerAuditSinkTests.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Data; using Moq; using Serilog.Events; using Serilog.Parsing; @@ -157,6 +156,16 @@ public void EmitCallsSqlLogEventWriter() _sqlLogEventWriter.Verify(w => w.WriteEvent(logEvent), Times.Once); } + [Fact] + public void OnDisposeDisposesSqlLogEventWriterDependency() + { + // Arrange + act + using (new MSSqlServerAuditSink(_sinkOptions, _columnOptions, _sinkDependencies)) { } + + // Assert + _sqlLogEventWriter.Verify(w => w.Dispose(), Times.Once); + } + private void SetupSut(bool autoCreateSqlDatabase = false, bool autoCreateSqlTable = false) { _sinkOptions.AutoCreateSqlDatabase = autoCreateSqlDatabase; diff --git a/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerSinkTests.cs b/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerSinkTests.cs index 86355f7e..f6a6b018 100644 --- a/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerSinkTests.cs +++ b/test/Serilog.Sinks.MSSqlServer.Tests/Sinks/MSSqlServer/MSSqlServerSinkTests.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Data; using System.Threading.Tasks; using Moq; using Serilog.Events; @@ -173,7 +172,7 @@ public async Task EmitBatchAsyncWithUseSqlBulkCopyFalseCallsSqlLogEventWriter() } [Fact] - public void OnEmpytBatchAsyncReturnsCompletedTask() + public void OnEmptyBatchAsyncReturnsCompletedTask() { // Arrange SetupSut(); @@ -185,6 +184,26 @@ public void OnEmpytBatchAsyncReturnsCompletedTask() Assert.True(task.IsCompleted); } + [Fact] + public void OnDisposeDisposesSqlBulkBatchWriterDependency() + { + // Arrange + act + using (new MSSqlServerSink(_sinkOptions, _sinkDependencies)) { } + + // Assert + _sqlBulkBatchWriter.Verify(w => w.Dispose(), Times.Once); + } + + [Fact] + public void OnDisposeDisposesSqlLogEventWriterDependency() + { + // Arrange + act + using (new MSSqlServerSink(_sinkOptions, _sinkDependencies)) { } + + // Assert + _sqlLogEventWriter.Verify(w => w.Dispose(), Times.Once); + } + private void SetupSut( bool autoCreateSqlDatabase = false, bool autoCreateSqlTable = false,