Example #1
0
        public void Test08ScanWithPauseAndDispose()
        {
            using (ScanFS fileScan = new ScanFS())
            {
                fileScan.SetDirectories( new DirectoryInfo[] { new DirectoryInfo(Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\Projects\trace\src\FS.Tests\TestFiles\TestGetItemCount1")) });
                ScanFSEventSink scannerSink = new ScanFSEventSink(fileScan,1 );

                //Start scanning on a different thread.
                Thread fred = new Thread(new ParameterizedThreadStart(ScannerWorker));
                fred.Name = "Test_8_ScanWithPauseAndDispose_ScannerWorker";
                fred.Start(fileScan);

                //When at least 1 file is detected, pause the process.
                while (1 > scannerSink.FilesFound)
                {
                    Thread.Sleep(1);
                }
                fileScan.Pause();
        
                int currentAmountOfFileEventsFired = scannerSink.FilesFound;

                System.Threading.Thread.Sleep(500);
                Assert.AreEqual(currentAmountOfFileEventsFired, scannerSink.FilesFound);
            }
        }
Example #2
0
        public void Test10ScanWithPauseAndCancel()
        {
            using (ScanFS fileScan = new ScanFS())
            {
                fileScan.SetDirectories( new DirectoryInfo[] { new DirectoryInfo(Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\Projects\trace\src\FS.Tests\TestFiles\TestGetItemCount1")) });
                ScanFSEventSink scannerSink = new ScanFSEventSink(fileScan, 1);

                Thread fred = new Thread(new ParameterizedThreadStart(ScannerWorker));
                fred.Name = "Test_10_ScanWithPauseAndCancel_ScannerWorker";
                fred.Start(fileScan);

                while (1 > scannerSink.FilesFound)
                {
                    Thread.Sleep(1);
                }
                fileScan.Pause();

                int currentAmountOfFileEventsFired = scannerSink.FilesFound;

                Thread.Sleep(200);
                //should not be getting events while paused
                Assert.AreEqual(currentAmountOfFileEventsFired, scannerSink.FilesFound);

                fileScan.Cancel();

                //now wait for the call to Execute on the other thread to finish
                fred.Join(20000);

                //should have terminated without publishing any more events
                Assert.AreEqual(currentAmountOfFileEventsFired, scannerSink.FilesFound);
            }
		}
Example #3
0
		public void Test07Scan()
        {
			using (ScanFS fileScan = new ScanFS())
			{
				fileScan.SetDirectories(new DirectoryInfo[] { new DirectoryInfo(Workshare.TestUtils.TestFileUtils.MakeRootPathAbsolute(@"\Projects\trace\src\FS.Tests\TestFiles\TestGetItemCount1")) });

				ScanFSEventSink scannerSink = new ScanFSEventSink(fileScan, 0);

				fileScan.Execute(); //will lock on this call until done.

				//should have fired an event for each file found in the search
				Assert.AreEqual(43, scannerSink.FilesFound);
			}
        }