using System.IO.Abstractions; using Recyclarr.Cli.Console.Setup; using Recyclarr.Settings; namespace Recyclarr.Cli.IntegrationTests; [TestFixture] internal class BaseCommandSetupIntegrationTest : CliIntegrationFixture { [Test] public void Log_janitor_cleans_up_user_specified_max_files() { const int maxFiles = 25; Fs.AddFile( Paths.AppDataDirectory.File("settings.yml"), new MockFileData( $""" log_janitor: max_files: {maxFiles} """ ) ); for (var i = 0; i < maxFiles + 20; ++i) { Fs.AddFile(Paths.LogDirectory.File($"logfile-{i}.log").FullName, new MockFileData("")); } var sut = Resolve(); sut.OnFinish(); Fs.AllFiles.Where(x => x.StartsWith(Paths.LogDirectory.FullName, StringComparison.Ordinal)) .Should() .HaveCount(maxFiles); } [Test] public void Log_janitor_cleans_up_default_max_files() { var maxFiles = Resolve>().Value.MaxFiles; for (var i = 0; i < maxFiles + 20; ++i) { Fs.AddFile(Paths.LogDirectory.File($"logfile-{i}.log").FullName, new MockFileData("")); } var sut = Resolve(); sut.OnFinish(); maxFiles.Should().BePositive(); Fs.AllFiles.Where(x => x.StartsWith(Paths.LogDirectory.FullName, StringComparison.Ordinal)) .Should() .HaveCount(maxFiles); } }