Exemple #1
0
        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());
        }
Exemple #2
0
        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!
        }
Exemple #3
0
        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 });
        }
Exemple #4
0
        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());
        }