public void ArchiveLogFilesTest() { TestFileSystem FileSystem = CreateDefaultFileSystem(); TestSystemTime SystemTime = new TestSystemTime(2020, 1, 19, 1, 0, 0, DateTimeKind.Local); using LogFileManager Manager = new LogFileManager(FileSystem, SystemTime); string BaseFileName = $"{FileLoggerOptions.DefaultLogFileDirectory}{Environment.MachineName}.20200118"; for (int i = 0; i <= 10; i++) { string FileName = i == 0 ? BaseFileName + ".log" : BaseFileName + $".{i}.log"; TestFileSystem.TestFile?TestFile = FileSystem.FindFile(FileName, true); TestFile !.CreatedAtUtc = SystemTime.UtcNow.AddDays(-1); } FileSystem.FindFile($"{FileLoggerOptions.DefaultLogFileDirectory}SomeRandomFile.txt", true); FileSystem.FindFile($"{FileLoggerOptions.DefaultLogFileDirectory}SomeRandomLogFile.log", true); FileSystem.FindFile($"{FileLoggerOptions.DefaultLogFileDirectory}SomeOtherMachineName.20200118.log", true); using (Stream FullFile = FileSystem.OpenFile($"{FileLoggerOptions.DefaultLogFileDirectory}{Environment.MachineName}.20200119.log", FileMode.Create, FileAccess.Write, FileShare.None)) { FullFile.Write(new byte[1024], 0, 1024); } LogFile?LogFile = Manager.FindLogFile( "AppName", "Group", () => s_DefaultOptions, FileLoggerOptions.DefaultLogFileNamePattern, 1, s_DefaultManagementSchedule); Assert.IsNotNull(LogFile); Assert.AreEqual($"{Environment.MachineName}.20200119.1.log", LogFile.FinalFileName); Assert.AreEqual(16, FileSystem.EnumerateFiles(FileLoggerOptions.DefaultLogFileDirectory).Count()); Assert.AreEqual(0, FileSystem.EnumerateFiles(FileLoggerOptions.DefaultLogFileArchiveDirectory).Count()); Manager.ArchiveLogFiles("AppName", s_DefaultOptions, FileLoggerOptions.DefaultLogFileNamePattern); Assert.AreEqual(5, FileSystem.EnumerateFiles(FileLoggerOptions.DefaultLogFileDirectory).Count()); Assert.AreEqual(11, FileSystem.EnumerateFiles(FileLoggerOptions.DefaultLogFileArchiveDirectory).Count()); }