public void LogFileDateCutoverBeforeArchiveTest() { TestFileSystem FileSystem = CreateDefaultFileSystem(); TestSystemTime SystemTime = new TestSystemTime(2020, 1, 18, 23, 59, 59, DateTimeKind.Local); LogFileManagementSchedule ManagementSchedule = LogFileManagementSchedule.Build(SystemTime, s_DefaultOptions); using LogFileManager Manager = new LogFileManager(FileSystem, SystemTime); LogFile LogFile = Manager.FindLogFile( "AppName", "Group", () => s_DefaultOptions, FileLoggerOptions.DefaultLogFileNamePattern, null, ManagementSchedule); Assert.IsNotNull(LogFile); Assert.AreEqual($"{Environment.MachineName}.20200118.log", LogFile.FinalFileName); SystemTime.UtcNow = new DateTime(2020, 1, 19, 0, 0, 0, DateTimeKind.Local).ToUniversalTime(); LogFile = Manager.FindLogFile( "AppName", "Group", () => s_DefaultOptions, FileLoggerOptions.DefaultLogFileNamePattern, null, ManagementSchedule); Assert.IsNotNull(LogFile); Assert.AreEqual($"{Environment.MachineName}.20200119.log", LogFile.FinalFileName); Assert.AreEqual(2, FileSystem.EnumerateFiles(FileLoggerOptions.DefaultLogFileDirectory).Count()); Assert.AreEqual(0, FileSystem.EnumerateFiles(FileLoggerOptions.DefaultLogFileArchiveDirectory).Count()); }
public void NextArchiveCalculationTimeLocalModeTimeChangeTest() { if (TimeZoneInfo.Local.StandardName != "Pacific Standard Time") { return; } /* * Pacific time zone 2019 time change events: * Sun, Mar 10, 2019 at 2:00 am PST -> PDT (at 2am clock set to 3am, 2am - 3am ghosted) * Sun, Nov 3, 2019 at 2:00 am PDT -> PST (at 2am clock to set to 1am, 1am - 2am repeated) */ TestSystemTime SystemTime = new TestSystemTime(2019, 3, 10, 1, 0, 0, DateTimeKind.Local); TimeSpan TimeUntilNextArchive = LogFileManagementSchedule.Build( SystemTime, new FileLoggerOptions { LogFileArchiveTime = new TimeSpan(3, 30, 0) }).TimeUntilNextArchiveUtc; Assert.AreEqual(TimeSpan.FromHours(1.5), TimeUntilNextArchive); // Every other day of the year this will calculate as 2.5 hours! SystemTime = new TestSystemTime(2019, 11, 3, 0, 0, 0, DateTimeKind.Local); TimeUntilNextArchive = LogFileManagementSchedule.Build( SystemTime, new FileLoggerOptions { LogFileArchiveTime = new TimeSpan(3, 0, 0) }).TimeUntilNextArchiveUtc; Assert.AreEqual(TimeSpan.FromHours(4), TimeUntilNextArchive); // Every other day of the year this will calculate as 3 hours! }
public void CreateHmacSha1AuthorizationHeader(string uri, string httpMethod, string consumerToken, string consumerSecret, string nonce, long timestamp, string expectedSignature) { TestNonceCreator nonceCreator = new TestNonceCreator(nonce); TestSystemTime systemTime = new TestSystemTime(timestamp); string header = OAuthUtility.CreateHmacSha1AuthorizationHeaderValue(new Uri(uri), httpMethod, consumerToken, consumerSecret, nonceCreator, systemTime); AssertAuthorizationHeader(header, new[] { "oauth_consumer_key", consumerToken, "oauth_nonce", nonce, "oauth_timestamp", timestamp.ToInvariantString(), "oauth_signature_method", "HMAC-SHA1", "oauth_version", "1.0", "oauth_signature", expectedSignature }); }
public void CreateHmacSha1AuthorizationHeader2(string expectedHeader, string uri, string httpMethod, string consumerToken, string consumerSecret, string callback, string nonce, long timestamp) { TestNonceCreator nonceCreator = new TestNonceCreator(nonce); TestSystemTime systemTime = new TestSystemTime(timestamp); string header = OAuthUtility.CreateHmacSha1AuthorizationHeaderValue(new Uri(uri), httpMethod, consumerToken, consumerSecret, callback, nonceCreator, systemTime); Assert.AreEqual(expectedHeader, header); }
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()); }