Пример #1
0
        public static void Main(string[] args)
        {
            ObserverClass2 clsLib = new ObserverClass2();

            string cmd           = null;
            string directoryPath = null;
            int    frequency     = 1000; //ms

            while (true)
            {
                Console.WriteLine(@"Please enter command ('start' or 'stop'): ");
                cmd = Console.ReadLine().Trim();
                Console.WriteLine(@"Please enter directory: ");
                directoryPath = Console.ReadLine().Trim();

                if (cmd == "start")
                {
                    Console.WriteLine("Starting " + directoryPath + " observation...");
                    clsLib.StartObserveDirectory(directoryPath, frequency, (result) => Console.WriteLine(result));
                }
                else if (cmd == "stop")
                {
                    clsLib.StopObserveDirectory(directoryPath);
                    Console.WriteLine("... directory " + directoryPath + " observation is stoped");
                }
                else
                {
                    Console.WriteLine("Unknown command: " + cmd);
                }
            }
        }
Пример #2
0
        public void ShouldDetectChangedFile()
        {
            int    frequency      = 1000;
            string directory      = @"C:/temp3";
            string fileName       = @"unitTestFile.txt";
            string result         = null;
            string expectedResult = null;

            if (!(File.Exists(directory + @"/" + fileName)))
            {
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }

                File.Create(directory + @"/" + fileName);
            }

            //ObserverClass clsLib = new ObserverClass();
            ObserverClass2 clsLib = new ObserverClass2();

            clsLib.StartObserveDirectory(directory, frequency, (clbkResult) => result = clbkResult);

            File.CreateText(directory + @"/" + fileName);

            expectedResult = @"directory: " + directory + ", fileName: " + fileName + ", changed";

            while (result == null)
            {
                Thread.Sleep(1000);
            }

            Assert.AreEqual(result, expectedResult);
        }
Пример #3
0
        public void ShouldTerminateOneOfTheRunningThreads()
        {
            int    frequency          = 1000;
            string directory1         = @"C:/temp";
            string directory2         = @"C:/temp2";
            string fileName           = @"unitTestFile.txt";
            string result             = null;
            string expectedDir1Result = @"directory: " + directory1 + ", fileName: " + fileName + ", changed";;
            string expectedDir2Result = @"directory: " + directory2 + ", fileName: " + fileName + ", changed";;

            if (!(File.Exists(directory1 + @"/" + fileName)))
            {
                if (!Directory.Exists(directory1))
                {
                    Directory.CreateDirectory(directory1);
                }

                File.Create(directory1 + @"/" + fileName).Close();
            }

            if (!(File.Exists(directory2 + @"/" + fileName)))
            {
                if (!Directory.Exists(directory2))
                {
                    Directory.CreateDirectory(directory2);
                }

                File.Create(directory2 + @"/" + fileName).Close();
            }

            ObserverClass2 clsLib = new ObserverClass2();

            clsLib.StartObserveDirectory(directory1, frequency, (clbkResult) => result = clbkResult);

            File.CreateText(directory1 + @"/" + fileName).Close();

            while (result == null)
            {
                Thread.Sleep(1000);
            }

            Assert.AreEqual(result, expectedDir1Result);

            result = null;

            clsLib.StartObserveDirectory(directory2, frequency, (clbkResult) => result = clbkResult);

            File.CreateText(directory2 + @"/" + fileName).Close();

            while (result == null)
            {
                Thread.Sleep(1000);
            }

            Assert.AreEqual(result, expectedDir2Result);

            result = null;

            clsLib.StopObserveDirectory(directory2);

            File.CreateText(directory2 + @"/" + fileName).Close();

            File.CreateText(directory1 + @"/" + fileName).Close();

            while (result == null)
            {
                Thread.Sleep(1000);
            }

            Assert.AreEqual(result, expectedDir1Result);
            Assert.AreNotEqual(result, expectedDir2Result);

            clsLib.StopObserveDirectory(directory1);
        }