public async void ArchivesTheLogFileEveryHourOnTheHourWhenRolloverPeriodIsHourly() { RollingFileLogProvider logProvider = new TestingRollingFileLogProvider( _logFilePath, RolloverPeriod.Hourly, new TimeSet(new DateTime(2014, 10, 14, 11, 30, 0), new DateTime(2014, 10, 15, 13, 15, 0)), // A) Different date, different hour. new TimeSet(new DateTime(2014, 10, 14, 11, 30, 0), new DateTime(2014, 10, 15, 11, 45, 0)), // B) Different date, same hour. new TimeSet(new DateTime(2014, 10, 15, 11, 45, 0), new DateTime(2014, 10, 15, 13, 30, 0)), // C) Same date, different hour. new TimeSet(new DateTime(2014, 10, 15, 13, 15, 0), new DateTime(2014, 10, 15, 13, 30, 0))); // D) Same date, same hour. Assert.That(GetFileCount(), Is.EqualTo(0)); await logProvider.WriteAsync(GetLogEntry()); // New file, doesn't consume TimeSet Assert.That(GetFileCount(), Is.EqualTo(1)); await logProvider.WriteAsync(GetLogEntry()); // A) Archive: Different date, different hour. Assert.That(GetFileCount(), Is.EqualTo(2)); await logProvider.WriteAsync(GetLogEntry()); // B) Archive: Different date, same hour. Assert.That(GetFileCount(), Is.EqualTo(3)); await logProvider.WriteAsync(GetLogEntry()); // C) Archive: Same date, different hour. Assert.That(GetFileCount(), Is.EqualTo(4)); await logProvider.WriteAsync(GetLogEntry()); // D) No Archive: Same date, same hour. Assert.That(GetFileCount(), Is.EqualTo(4)); }
public async Task WriteAsyncArchivesTheLogFileEveryDayAtMidnightWhenRolloverPeriodIsDaily() { RollingFileLogProvider rollingFileLogProvider = new TestingRollingFileLogProvider( _logFilePath, RolloverPeriod.Daily, new TimeSet(new DateTime(2014, 10, 14, 11, 30, 0), new DateTime(2014, 10, 15, 13, 15, 0)), // A) Different date, different hour. new TimeSet(new DateTime(2014, 10, 14, 11, 30, 0), new DateTime(2014, 10, 15, 11, 45, 0)), // B) Different date, same hour. new TimeSet(new DateTime(2014, 10, 15, 11, 45, 0), new DateTime(2014, 10, 15, 13, 30, 0)), // C) Same date, different hour. new TimeSet(new DateTime(2014, 10, 15, 13, 15, 0), new DateTime(2014, 10, 15, 13, 30, 0))); // D) Same date, same hour. GetFileCount().Should().Be(0); await rollingFileLogProvider.WriteAsync(GetLogEntry()); // New file, doesn't consume TimeSet GetFileCount().Should().Be(1); await rollingFileLogProvider.WriteAsync(GetLogEntry()); // A) Archive: Different date, different hour. GetFileCount().Should().Be(2); await rollingFileLogProvider.WriteAsync(GetLogEntry()); // B) Archive: Different date, same hour. GetFileCount().Should().Be(3); await rollingFileLogProvider.WriteAsync(GetLogEntry()); // C) No Archive: Same date, different hour. GetFileCount().Should().Be(3); await rollingFileLogProvider.WriteAsync(GetLogEntry()); // D) No Archive: Same date, same hour. GetFileCount().Should().Be(3); }