diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index 40a64c7f..745c9bfd 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -55,8 +55,8 @@
+
-
@@ -65,4 +65,4 @@
-
\ No newline at end of file
+
diff --git a/src/tests/Directory.Build.props b/src/tests/Directory.Build.props
index e7828b1e..ae7a068b 100644
--- a/src/tests/Directory.Build.props
+++ b/src/tests/Directory.Build.props
@@ -22,8 +22,8 @@
+
-
diff --git a/src/tests/Recyclarr.Common.Tests/JsonUtilsTest.cs b/src/tests/Recyclarr.Common.Tests/JsonUtilsTest.cs
index ce0866d3..b1a83a17 100644
--- a/src/tests/Recyclarr.Common.Tests/JsonUtilsTest.cs
+++ b/src/tests/Recyclarr.Common.Tests/JsonUtilsTest.cs
@@ -1,7 +1,6 @@
using System.IO.Abstractions;
using System.IO.Abstractions.Extensions;
-using Serilog.Events;
-using Serilog.Sinks.TestCorrelator;
+using Recyclarr.TestLibrary;
namespace Recyclarr.Common.Tests;
@@ -12,34 +11,23 @@ public class JsonUtilsTest
[Test]
public void Log_files_that_do_not_exist()
{
- using var logContext = TestCorrelator.CreateContext();
var fs = new MockFileSystem();
- var log = new LoggerConfiguration()
- .MinimumLevel.Is(LogEventLevel.Debug)
- .WriteTo.TestCorrelator()
- .CreateLogger();
+ var log = new TestableLogger();
var path = fs.CurrentDirectory().SubDirectory("doesnt_exist");
var result = JsonUtils.GetJsonFilesInDirectories(new[] {path}, log);
result.Should().BeEmpty();
- TestCorrelator.GetLogEventsFromContextGuid(logContext.Guid)
- .Should().ContainSingle()
- .Which.RenderMessage()
- .Should().Match("*doesnt_exist*");
+ log.Messages.Should().ContainSingle()
+ .Which.Should().Match("*doesnt_exist*");
}
[Test]
public void Log_files_that_only_exist()
{
var fs = new MockFileSystem();
- var log = new LoggerConfiguration()
- .MinimumLevel.Is(LogEventLevel.Debug)
- .WriteTo.TestCorrelator()
- .CreateLogger();
-
- using var logContext = TestCorrelator.CreateContext();
+ var log = new TestableLogger();
var path = fs.CurrentDirectory().SubDirectory("exists").File("test.json");
fs.AddFile(path.FullName, new MockFileData(""));
@@ -50,21 +38,14 @@ public class JsonUtilsTest
.Which.FullName
.Should().Be(path.FullName);
- TestCorrelator.GetLogEventsFromContextGuid(logContext.Guid)
- .Should().BeEmpty();
+ log.Messages.Should().BeEmpty();
}
[Test]
public void Log_files_that_both_exist_and_do_not_exist()
{
var fs = new MockFileSystem();
- var log = new LoggerConfiguration()
- .MinimumLevel.Is(LogEventLevel.Debug)
- .WriteTo.TestCorrelator()
- .CreateLogger();
-
- using var logContext = TestCorrelator.CreateContext();
-
+ var log = new TestableLogger();
var paths = new[]
{
fs.CurrentDirectory().SubDirectory("does_not_exist"),
@@ -82,10 +63,8 @@ public class JsonUtilsTest
.Which.FullName
.Should().Be(existingFile);
- TestCorrelator.GetLogEventsFromContextGuid(logContext.Guid)
- .Should().ContainSingle()
- .Which.RenderMessage()
- .Should().Match("*does_not_exist*");
+ log.Messages.Should().ContainSingle()
+ .Which.Should().Match("*does_not_exist*");
}
[Test]
diff --git a/src/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj b/src/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj
index f7756c52..c5916839 100644
--- a/src/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj
+++ b/src/tests/Recyclarr.TestLibrary/Recyclarr.TestLibrary.csproj
@@ -3,6 +3,7 @@
+
diff --git a/src/tests/Recyclarr.TestLibrary/TestableLogger.cs b/src/tests/Recyclarr.TestLibrary/TestableLogger.cs
index 9584a4ea..8799a3db 100644
--- a/src/tests/Recyclarr.TestLibrary/TestableLogger.cs
+++ b/src/tests/Recyclarr.TestLibrary/TestableLogger.cs
@@ -1,23 +1,22 @@
+using JetBrains.Annotations;
using Serilog.Core;
using Serilog.Events;
-using Serilog.Sinks.TestCorrelator;
namespace Recyclarr.TestLibrary;
-public sealed class TestableLogger : ILogger, IDisposable
+[UsedImplicitly]
+public sealed class TestableLogger : ILogger
{
private readonly Logger _log;
- private ITestCorrelatorContext _logContext;
+ private readonly List _messages = new();
public TestableLogger()
{
_log = new LoggerConfiguration()
.MinimumLevel.Is(LogEventLevel.Verbose)
- .WriteTo.TestCorrelator()
+ .WriteTo.Observers(o => o.Subscribe(x => _messages.Add(x.RenderMessage())))
.WriteTo.Console()
.CreateLogger();
-
- _logContext = TestCorrelator.CreateContext();
}
public void Write(LogEvent logEvent)
@@ -25,21 +24,5 @@ public sealed class TestableLogger : ILogger, IDisposable
_log.Write(logEvent);
}
- public void Dispose()
- {
- _logContext.Dispose();
- _log.Dispose();
- }
-
- public void ResetCapturedLogs()
- {
- _logContext.Dispose();
- _logContext = TestCorrelator.CreateContext();
- }
-
- public IEnumerable GetRenderedMessages()
- {
- return TestCorrelator.GetLogEventsFromContextGuid(_logContext.Guid)
- .Select(x => x.RenderMessage());
- }
+ public IEnumerable Messages => _messages;
}
diff --git a/src/tests/Recyclarr.TrashLib.TestLibrary/TrashLibIntegrationFixture.cs b/src/tests/Recyclarr.TrashLib.TestLibrary/TrashLibIntegrationFixture.cs
index ace193a2..bf85a590 100644
--- a/src/tests/Recyclarr.TrashLib.TestLibrary/TrashLibIntegrationFixture.cs
+++ b/src/tests/Recyclarr.TrashLib.TestLibrary/TrashLibIntegrationFixture.cs
@@ -3,11 +3,11 @@ using System.IO.Abstractions.Extensions;
using Autofac;
using Autofac.Features.ResolveAnything;
using Recyclarr.Common;
+using Recyclarr.TestLibrary;
using Recyclarr.TestLibrary.Autofac;
using Recyclarr.TrashLib.ApiServices.System;
using Recyclarr.TrashLib.Repo.VersionControl;
using Recyclarr.TrashLib.Startup;
-using Serilog.Events;
using Spectre.Console;
using Spectre.Console.Testing;
@@ -24,7 +24,6 @@ public abstract class TrashLibIntegrationFixture : IDisposable
});
Paths = new AppPaths(Fs.CurrentDirectory().SubDirectory("test").SubDirectory("recyclarr"));
- Logger = CreateLogger();
_container = new Lazy(() =>
{
@@ -63,15 +62,6 @@ public abstract class TrashLibIntegrationFixture : IDisposable
// not in the TrashLibAutofacModule.
}
- private static ILogger CreateLogger()
- {
- return new LoggerConfiguration()
- .MinimumLevel.Is(LogEventLevel.Verbose)
- .WriteTo.TestCorrelator()
- .WriteTo.Console()
- .CreateLogger();
- }
-
// ReSharper disable MemberCanBePrivate.Global
private readonly Lazy _container;
@@ -80,7 +70,7 @@ public abstract class TrashLibIntegrationFixture : IDisposable
protected MockFileSystem Fs { get; }
protected TestConsole Console { get; } = new();
protected IAppPaths Paths { get; }
- protected ILogger Logger { get; }
+ protected TestableLogger Logger { get; } = new();
// ReSharper restore MemberCanBePrivate.Global
diff --git a/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderSecretsTest.cs b/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderSecretsTest.cs
index f5375bfe..97d52b3e 100644
--- a/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderSecretsTest.cs
+++ b/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderSecretsTest.cs
@@ -2,7 +2,6 @@ using System.IO.Abstractions;
using Recyclarr.TrashLib.Config;
using Recyclarr.TrashLib.Config.Parsing;
using Recyclarr.TrashLib.TestLibrary;
-using Serilog.Sinks.TestCorrelator;
namespace Recyclarr.TrashLib.Tests.Config.Parsing;
@@ -59,7 +58,6 @@ public class ConfigurationLoaderSecretsTest : TrashLibIntegrationFixture
[Test]
public void Throw_when_referencing_invalid_secret()
{
- using var logContext = TestCorrelator.CreateContext();
var configLoader = Resolve();
const string testYml =
diff --git a/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderTest.cs b/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderTest.cs
index a58bf78b..fe078a1a 100644
--- a/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderTest.cs
+++ b/src/tests/Recyclarr.TrashLib.Tests/Config/Parsing/ConfigurationLoaderTest.cs
@@ -10,7 +10,6 @@ using Recyclarr.TrashLib.Config;
using Recyclarr.TrashLib.Config.Parsing;
using Recyclarr.TrashLib.Config.Services;
using Recyclarr.TrashLib.TestLibrary;
-using Serilog.Sinks.TestCorrelator;
namespace Recyclarr.TrashLib.Tests.Config.Parsing;
@@ -129,8 +128,6 @@ public class ConfigurationLoaderTest : TrashLibIntegrationFixture
[Test]
public void No_log_when_file_not_empty_but_has_no_desired_sections()
{
- using var logContext = TestCorrelator.CreateContext();
-
var sut = Resolve();
const string testYml =
"""
@@ -142,8 +139,6 @@ public class ConfigurationLoaderTest : TrashLibIntegrationFixture
sut.Load(testYml).GetConfigsOfType(SupportedServices.Sonarr);
- TestCorrelator.GetLogEventsFromContextGuid(logContext.Guid)
- .Select(x => x.RenderMessage())
- .Should().NotContain("Configuration is empty");
+ Logger.Messages.Should().NotContain("Configuration is empty");
}
}