Beispiel #1
0
        public void testStopWithOutflush()
        {
            fileName = "test4";
            AsyncLog test4 = new AsyncLog(fileName, filePath, threadSleep);
            Random   rnd   = new Random();

            int lines;
            int randomNr = rnd.Next(1, 99);

            for (int i = 0; i < randomNr; i++)
            {
                if (i == randomNr)
                {
                    test4.StopWithoutFlush();
                }
                test4.Write("Number with out Flush: " + i.ToString());

                Thread.Sleep(20);
            }
            randomNr++;


            lines = File.ReadLines(test4.fullFilePath).Count();

            Assert.IsTrue(randomNr > lines);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            ILog logger = new AsyncLog();

            for (int i = 0; i < 15; i++)
            {
                logger.Write("Number with Flush: " + i.ToString());
                Thread.Sleep(50);
            }

            logger.StopWithFlush();

            ILog logger2 = new AsyncLog();

            for (int i = 5000; i > 0; i--)
            {
                logger2.Write("Number with No flush: " + i.ToString());
            }

            logger2.StopWithoutFlush();

            Console.ReadLine();

            Console.WriteLine("Day Change: " + (new Tests()).TestDayChange());
            Console.WriteLine("Line Logged: " + (new Tests()).TestCallToWrite());
            Console.WriteLine("Stop With Flush: " + (new Tests()).TestStopWithFlush());
            Console.WriteLine("Stop Without Flush (test not deterministic!): " + (new Tests()).TestStopWithoutFlush());
        }
Beispiel #3
0
        static void Do2()
        {
            ILog logger2 = new AsyncLog();

            for (int i = 50; i > 0; i--)
            {
                logger2.Write("Number with No flush: " + i.ToString());
                Thread.Sleep(20);
            }

            logger2.StopWithoutFlush();
        }
Beispiel #4
0
        public void StopWithoutFlush_StopAtPoint10_AssertThatItPointIs11AndNotEqual10()
        {
            ILog writerAsync = new AsyncLog(new FakeLogOutput());

            for (int i = 50; i >= 0; i--)
            {
                writerAsync.Write(i.ToString());
                if (i == 10)
                {
                    writerAsync.StopWithoutFlush();
                }
                System.Threading.Thread.Sleep(50);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Run and  Stop With Flush
        /// </summary>
        static void StopWithoutFlushTest()
        {
            ILog logger = new AsyncLog();

            for (int i = 0; i < 1000; i++)
            {
                logger.Write("Number without Flush: " + i.ToString());
                if (i == 500)
                {
                    logger.StopWithoutFlush();
                }
            }
            logger.CloseStreamWriter();
            Thread.Sleep(2000);
        }
Beispiel #6
0
        public void TestNewDayNewFile()
        {
            AsyncLog logger = new AsyncLog();

            logger.Write("Number with Flush: ");
            Thread.Sleep(1000);
            DateTime plusOne = DateTime.Now.AddDays(1);

            logger.logFile._curDate = plusOne;
            logger.logFile.isTest   = true;
            logger.Write("Number with Flush: ");
            Thread.Sleep(1000);
            logger.StopWithoutFlush();

            Assert.IsTrue(File.Exists(logger.logFile.filename));
            Assert.IsTrue(logger.logFile.filename.Contains(plusOne.ToString("yyyyMMdd HHmmss fff")));
        }
Beispiel #7
0
        public void TestWriteToLogWithOutFlush()
        {
            AsyncLog logger        = new AsyncLog();
            int      numberOfLines = 100;

            for (int i = 1; i < numberOfLines; i++)
            {
                logger.Write("Number with Flush: " + i.ToString());
                Thread.Sleep(20);
            }

            logger.StopWithoutFlush();

            Thread.Sleep(5000);
            logger.logFile._writer.Close();
            string[] readText = File.ReadAllLines(logger.logFile.filename);
            Assert.IsTrue(File.Exists(logger.logFile.filename));
            Assert.IsTrue(readText.Length < numberOfLines);
        }
Beispiel #8
0
        public async Task StopWritingWithoutFlush()
        {
            var dateTimeProviderMock = new Mock <IDateTimeProvider>();
            var dateTime             = new DateTime(2020, 3, 14, 12, 30, 00);

            dateTimeProviderMock.SetupGet(x => x.DateTimeNow).Returns(dateTime);
            DateTimeProvider.Current = dateTimeProviderMock.Object;

            var log = new AsyncLog(new LogsStorage());

            log.Write(_demoText);
            var loopCounter = 5;

            for (var i = 0; i <= loopCounter; i++)
            {
                log.Write($"{_demoText}{i}");
            }

            await Task.Delay(1);

            log.StopWithoutFlush();

            Assert.True(Directory.Exists(LogDir));
            var files = Directory.GetFiles(LogDir);

            var dateTimeInLogfileName = dateTime.ToString("yyyyMMdd HHmmss fff");

            foreach (var file in files)
            {
                var fileInfo = new FileInfo(file);
                if (fileInfo.Name.Contains(dateTimeInLogfileName))
                {
                    using (var streamReader = File.OpenText(file))
                    {
                        var content = await streamReader.ReadToEndAsync();

                        Assert.False(content.Contains($"{_demoText}{loopCounter}"));
                    }
                    break;
                }
            }
        }
Beispiel #9
0
        public void TestWithoutFlush()
        {
            ILog   noFlushLog = new AsyncLog(nameof(noFlushLog), Location);
            string path       = TestUtils.BuildFilePath(Location, nameof(noFlushLog));

            for (int i = 0; i < 15; i++)
            {
                noFlushLog.AddLogToQueue("Number with Flush: " + i);
            }

            noFlushLog.StopWithoutFlush();

            Thread.Sleep(100);

            var file = File.OpenRead(path);

            Assert.IsTrue(File.Exists(path));
            Assert.IsTrue(file.Length == 0);

            file.Dispose();
            File.Delete(path);
        }
Beispiel #10
0
        static void Main(string[] args)
        {
            string fileName    = "Log";
            string filePath    = @"C:\LogTest";
            int    threadSleep = 50;

            ILog logger = new AsyncLog(fileName, filePath, threadSleep);

            while (true)
            {
                for (int i = 0; i < 15; i++)
                {
                    logger.Write("Number with Flush: " + i.ToString());
                    Thread.Sleep(50);
                }

                logger.StopWithFlush();
                Thread.Sleep(50);

                for (int i = 15; i < 50; i++)
                {
                    logger.Write("Number with Flush: " + i.ToString());
                    Thread.Sleep(50);
                }
                fileName = "Log";
                filePath = @"C:\LogTest";
                ILog logger2 = new AsyncLog(fileName, filePath, threadSleep);

                for (int i = 100; i > 0; i--)
                {
                    logger2.Write("Number with No flush: " + i.ToString());
                    Thread.Sleep(20);
                }

                logger2.StopWithoutFlush();
                Console.WriteLine("finish");
                Console.ReadLine();
            }
        }
Beispiel #11
0
        public static void Main(string[] args)
        {
            var flushLogger = new AsyncLog(new LogsStorage());

            for (var i = 0; i < 15; i++)
            {
                flushLogger.Write($"Number with Flush: {i}");
                Task.Delay(10).Wait();
            }
            flushLogger.StopWithFlush();

            var noFlushLogger = new AsyncLog(new LogsStorage());

            for (var i = 50; i > 0; i--)
            {
                noFlushLogger.Write($"Number with No flush: {i}");
                Task.Delay(5).Wait();
            }
            noFlushLogger.StopWithoutFlush();

            Console.ReadKey();
        }
Beispiel #12
0
        static void Main(string[] args)
        {
            ILog logger = new AsyncLog(new FileWriter());

            for (int i = 0; i < 15; i++)
            {
                logger.Write("Number with Flush: " + i);
            }
            Thread.Sleep(5);
            logger.StopWithFlush();

            ILog logger2 = new AsyncLog(new FileWriter());

            for (int i = 50; i > 0; i--)
            {
                logger2.Write("Number with No flush: " + i);
            }
            Thread.Sleep(5);
            logger2.StopWithoutFlush();

            Console.ReadLine();
        }
Beispiel #13
0
        static void Main(string[] args)
        {
            // the stopAt variable is initiated to 50 to marka breakinmg point where a new date is detected
            int stopAt = 50;

            Console.WriteLine("Which test do you want to run  ?");
            Console.WriteLine("0 - No Stops / No Date Change");
            Console.WriteLine("1 - No Stops / With Date Change");
            Console.WriteLine("2 - Exit With Flush");
            Console.WriteLine("3 - Exit With No Flush");
            Console.WriteLine("4 - Exit Program");
            Char keyChar = 'A';

            while (keyChar != '4')
            {
                ConsoleKeyInfo keyInfo = Console.ReadKey(true);
                keyChar = keyInfo.KeyChar;
                switch (keyChar)
                {
                // Test that checks that the program is running/writing something
                case ('0'):
                {
                    ILog logger0 = new AsyncLog();
                    for (int i = 0; i < 200; i++)
                    {
                        Console.WriteLine("Test line with No Stop # " + i);
                        logger0.Write("Number with No Stop: " + i.ToString() + "\n");
                        Thread.Sleep(20);
                    }

                    Console.WriteLine("Test line NO STOPS Completed");
                    break;
                }

                //Test to check if a new log file is created upon passing midnight
                case ('1'):
                {
                    ILog logger0 = new AsyncLog();
                    for (int i = 0; i < 200; i++)
                    {
                        Console.WriteLine("Test line with No Stop # " + i);
                        logger0.Write("Number with No Stop: " + i.ToString() + "\n");
                        Thread.Sleep(100);
                        if (i == stopAt)
                        {
                            Console.WriteLine("Increasing day by one");
                            increaseDayByOne();
                        }
                    }

                    Console.WriteLine("Test line NO STOPS Completed");
                    break;
                }

                //Test to check if the system exits with flush
                case ('2'):
                {
                    Console.WriteLine("Testing With Flush");
                    ILog logger = new AsyncLog();
                    logger.ExitFlushTestingMode();
                    for (int i = 0; i < 150; i++)
                    {
                        Console.WriteLine("Test line with flush # " + i);
                        logger.Write("Number with Flush: " + i.ToString() + "\n");
                        Thread.Sleep(100);
                        if (i == stopAt)
                        {
                            Console.WriteLine("Increasing day by one");
                            increaseDayByOne();
                        }
                    }


                    logger.StopWithFlush();

                    Console.WriteLine("Testing Without Flush");
                    break;
                }

                //Test to check if the system exits without flush
                case ('3'):
                {
                    ILog logger2 = new AsyncLog();
                    logger2.ExitNoFlushTestingMode();
                    for (int i = 100; i > 0; i--)
                    {
                        Console.WriteLine("Test line (no flush) # " + i);
                        logger2.Write("Number with No flush: " + i.ToString());
                        Thread.Sleep(35);
                        if (i == stopAt)
                        {
                            Console.WriteLine("Increasing day by one");
                            increaseDayByOne();
                        }
                    }

                    logger2.StopWithoutFlush();
                    break;
                }

                case ('4'):
                {
                    Console.Write("Program Completed");
                    Console.ReadLine();
                    break;
                }
                }
                Console.Write("Program Completed");
                Console.ReadLine();
            }
        }