Esempio n. 1
0
        public void TestWatchForChange()
        {
            var parameterValues = GetParameterValues(testDirectory);
            var service         = GetService(parameterValues, false, true, false, false, new NotifyFilter {
                Size = true
            });
            var filePath = CreateFile();

            ServiceEventSink eventSink = new ServiceEventSink(service);

            service.Start(new ServiceContext(parameterValues));
            try
            {
                System.IO.File.AppendAllText(filePath, "blah");
                var results = eventSink.WaitForEvent(1);
                var args    = results.First();
                Assert.AreEqual(DirectoryWatchShared.ChangedEventEventName, args.Name);
                Assert.AreEqual(Path.GetFileName(filePath), ((ChangedOutputValues)args.Data).Name);
                Assert.AreEqual(filePath, ((ChangedOutputValues)args.Data).FullPath);
            }
            finally
            {
                service.Stop();
            }
        }
Esempio n. 2
0
        public void TestWatchForRename()
        {
            var parameterValues = GetParameterValues(testDirectory);
            var service         = GetService(parameterValues, false, false, true, false);
            var filePath        = CreateFile();

            ServiceEventSink eventSink = new ServiceEventSink(service);

            service.Start(new ServiceContext(parameterValues));
            try
            {
                var newFilePath = filePath + "new";
                System.IO.File.Move(filePath, newFilePath);
                var results = eventSink.WaitForEvent(1);
                var args    = results.First();
                Assert.AreEqual(DirectoryWatchShared.RenamedEventEventName, args.Name);

                Assert.AreEqual(Path.GetFileName(filePath), ((OldChangedOutputValues)args.Data).OldName);
                Assert.AreEqual(filePath, ((OldChangedOutputValues)args.Data).OldFullPath);
                Assert.AreEqual(Path.GetFileName(newFilePath), ((OldChangedOutputValues)args.Data).Name);
                Assert.AreEqual(newFilePath, ((OldChangedOutputValues)args.Data).FullPath);
            }
            finally
            {
                service.Stop();
            }
        }
Esempio n. 3
0
        public void TestWatchForError()
        {
            var parameterValues        = GetParameterValues(testDirectory);
            var service                = GetService(parameterValues, true, false, false, false);
            ServiceEventSink eventSink = new ServiceEventSink(service);

            service.Start(new ServiceContext(parameterValues));

            Assert.IsTrue(service.Started);

            Directory.Delete(this.testDirectory, true);

            var results = eventSink.WaitForEvent(1);
            var args    = results.First();

            Assert.AreEqual(DirectoryWatchShared.ErrorEventEventName, args.Name);
            Assert.AreEqual("Access is denied", args.Data);
            Thread.Sleep(200);
            Assert.IsFalse(service.Started);
        }
Esempio n. 4
0
        public void TestWatchForCreationFilter()
        {
            var parameterValues        = GetParameterValues(testDirectory, filter: "*temp*");
            var service                = GetService(parameterValues, true, false, false, false);
            ServiceEventSink eventSink = new ServiceEventSink(service);

            service.Start(new ServiceContext(parameterValues));
            try
            {
                CreateFile("Qwer");
                string filePath = CreateFile("contempt");
                var    results  = eventSink.WaitForEvent(1);
                var    args     = results.First();
                Assert.AreEqual(DirectoryWatchShared.CreatedEventEventName, args.Name);
                Assert.AreEqual(Path.GetFileName(filePath), ((ChangedOutputValues)args.Data).Name);
                Assert.AreEqual(filePath, ((ChangedOutputValues)args.Data).FullPath);
            }
            finally
            {
                service.Stop();
            }
        }
Esempio n. 5
0
        public void TestWatchForCreationSubdirectory()
        {
            Directory.CreateDirectory(Path.Combine(testDirectory, "Sub"));

            var parameterValues        = GetParameterValues(testDirectory, includeSubdirectories: true);
            var service                = GetService(parameterValues, true, false, false, false);
            ServiceEventSink eventSink = new ServiceEventSink(service);

            service.Start(new ServiceContext(parameterValues));
            try
            {
                string fileName = Path.Combine("Sub", "myfile");
                string filePath = CreateFile(fileName);
                var    results  = eventSink.WaitForEvent(1);
                var    args     = results.First();
                Assert.AreEqual(DirectoryWatchShared.CreatedEventEventName, args.Name);
                Assert.AreEqual(fileName, ((ChangedOutputValues)args.Data).Name);
                Assert.AreEqual(filePath, ((ChangedOutputValues)args.Data).FullPath);
            }
            finally
            {
                service.Stop();
            }
        }