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(); } }
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(); } }
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); }
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(); } }
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(); } }