public void SynchronizingObject_CalledOnEvent(WatcherChangeTypes expectedChangeType) { FileSystemEventHandler dele = (sender, e) => { Assert.Equal(expectedChangeType, e.ChangeType); }; TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { ExpectedDelegate = dele }; using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var watcher = new TestFileSystemWatcher(testDirectory.Path, "*")) { watcher.SynchronizingObject = invoker; if (expectedChangeType == WatcherChangeTypes.Created) { watcher.Created += dele; watcher.CallOnCreated(new FileSystemEventArgs(WatcherChangeTypes.Created, "test", "name")); } else if (expectedChangeType == WatcherChangeTypes.Deleted) { watcher.Deleted += dele; watcher.CallOnDeleted(new FileSystemEventArgs(WatcherChangeTypes.Deleted, "test", "name")); } else if (expectedChangeType == WatcherChangeTypes.Changed) { watcher.Changed += dele; watcher.CallOnChanged(new FileSystemEventArgs(WatcherChangeTypes.Changed, "test", "name")); } Assert.True(invoker.BeginInvoke_Called); } }
public void SynchronizingObject_GetSetRoundtrips() { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { }; using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var watcher = new TestFileSystemWatcher(testDirectory.Path, "*")) { Assert.Null(watcher.SynchronizingObject); watcher.SynchronizingObject = invoker; Assert.Equal(invoker, watcher.SynchronizingObject); watcher.SynchronizingObject = null; Assert.Null(watcher.SynchronizingObject); } }
public void FileSystemWatcher_File_Changed_SynchronizingObject() { string file = CreateTestFile(TestDirectory, "file"); using (var watcher = new FileSystemWatcher(TestDirectory, Path.GetFileName(file))) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; Action action = () => Directory.SetLastWriteTime(file, DateTime.Now + TimeSpan.FromSeconds(10)); ExpectEvent(watcher, WatcherChangeTypes.Changed, action, expectedPath: file); Assert.True(invoker.BeginInvoke_Called); } }
public void SynchronizingObject_GetSetRoundtrips() { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { }; using (var watcher = new TestFileSystemWatcher(TestDirectory, "*")) { Assert.Null(watcher.SynchronizingObject); watcher.SynchronizingObject = invoker; Assert.Equal(invoker, watcher.SynchronizingObject); watcher.SynchronizingObject = null; Assert.Null(watcher.SynchronizingObject); } }
public void FileSystemWatcher_File_Changed_SynchronizingObject() { using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var file = new TempFile(Path.Combine(testDirectory.Path, "file"))) using (var watcher = new FileSystemWatcher(testDirectory.Path, Path.GetFileName(file.Path))) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; Action action = () => Directory.SetLastWriteTime(file.Path, DateTime.Now + TimeSpan.FromSeconds(10)); ExpectEvent(watcher, WatcherChangeTypes.Changed, action, expectedPath: file.Path); Assert.True(invoker.BeginInvoke_Called); } }
public void SynchronizingObject_CalledOnRenamed() { RenamedEventHandler dele = (sender, e) => { Assert.Equal(WatcherChangeTypes.Renamed, e.ChangeType); }; TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { ExpectedDelegate = dele }; using (var watcher = new TestFileSystemWatcher(TestDirectory, "*")) { watcher.SynchronizingObject = invoker; watcher.Renamed += dele; watcher.CallOnRenamed(new RenamedEventArgs(WatcherChangeTypes.Renamed, "test", "name", "oldname")); Assert.True(invoker.BeginInvoke_Called); } }
public void SynchronizingObject_CalledOnError() { ErrorEventHandler dele = (sender, e) => { Assert.IsType <FileNotFoundException>(e.GetException()); }; TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { ExpectedDelegate = dele }; using (var watcher = new TestFileSystemWatcher(TestDirectory, "*")) { watcher.SynchronizingObject = invoker; watcher.Error += dele; watcher.CallOnError(new ErrorEventArgs(new FileNotFoundException())); Assert.True(invoker.BeginInvoke_Called); } }
public void FileSystemWatcher_Directory_Create_SynchronizingObject() { using (var watcher = new FileSystemWatcher(TestDirectory)) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; string dirName = Path.Combine(TestDirectory, "dir"); watcher.Filter = Path.GetFileName(dirName); Action action = () => Directory.CreateDirectory(dirName); Action cleanup = () => Directory.Delete(dirName); ExpectEvent(watcher, WatcherChangeTypes.Created, action, cleanup, dirName); Assert.True(invoker.BeginInvoke_Called); } }
public void FileSystemWatcher_File_Create_SynchronizingObject() { using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var watcher = new FileSystemWatcher(testDirectory.Path)) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; string fileName = Path.Combine(testDirectory.Path, "file"); watcher.Filter = Path.GetFileName(fileName); Action action = () => File.Create(fileName).Dispose(); Action cleanup = () => File.Delete(fileName); ExpectEvent(watcher, WatcherChangeTypes.Created, action, cleanup, fileName); Assert.True(invoker.BeginInvoke_Called); } }
public void File_Move_SynchronizingObject() { string dir = CreateTestDirectory(TestDirectory, "dir"); string testFile = CreateTestFile(dir, "file"); using (var watcher = new FileSystemWatcher(dir, "*")) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; string sourcePath = testFile; string targetPath = testFile + "_Renamed"; // Move the testFile to a different name in the same directory Action action = () => File.Move(sourcePath, targetPath); Action cleanup = () => File.Move(targetPath, sourcePath); ExpectEvent(watcher, WatcherChangeTypes.Renamed, action, cleanup, targetPath); Assert.True(invoker.BeginInvoke_Called); } }
public void FileSystemWatcher_InternalBufferSize_SynchronizingObject() { ManualResetEvent unblockHandler = new ManualResetEvent(false); string file = CreateTestFile(TestDirectory, "file"); using (FileSystemWatcher watcher = CreateWatcher(TestDirectory, file, unblockHandler)) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; int internalBufferOperationCapacity = CalculateInternalBufferOperationCapacity(watcher.InternalBufferSize, file); Action action = GetAction(unblockHandler, internalBufferOperationCapacity, file); Action cleanup = GetCleanup(unblockHandler); ExpectError(watcher, action, cleanup); Assert.True(invoker.BeginInvoke_Called); } }
public void Directory_Move_SynchronizingObject() { using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var dir = new TempDirectory(Path.Combine(testDirectory.Path, "dir"))) using (var watcher = new FileSystemWatcher(testDirectory.Path)) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; string sourcePath = dir.Path; string targetPath = Path.Combine(testDirectory.Path, "target"); Action action = () => Directory.Move(sourcePath, targetPath); Action cleanup = () => Directory.Move(targetPath, sourcePath); ExpectEvent(watcher, WatcherChangeTypes.Renamed, action, cleanup, targetPath); Assert.True(invoker.BeginInvoke_Called); } }
public void FileSystemWatcher_InternalBufferSize_SynchronizingObject() { ManualResetEvent unblockHandler = new ManualResetEvent(false); using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var file = new TempFile(Path.Combine(testDirectory.Path, "file"))) using (FileSystemWatcher watcher = CreateWatcher(testDirectory.Path, file.Path, unblockHandler)) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; int internalBufferOperationCapacity = CalculateInternalBufferOperationCapacity(watcher.InternalBufferSize, file.Path); Action action = GetAction(unblockHandler, internalBufferOperationCapacity, file.Path); Action cleanup = GetCleanup(unblockHandler); ExpectError(watcher, action, cleanup); Assert.True(invoker.BeginInvoke_Called); } }
public void FileSystemWatcher_File_Create_SynchronizingObject() { FileSystemWatcherTest.Execute(() => { using (var watcher = new FileSystemWatcher(TestDirectory)) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; string fileName = Path.Combine(TestDirectory, "file"); watcher.Filter = Path.GetFileName(fileName); Action action = () => File.Create(fileName).Dispose(); Action cleanup = () => File.Delete(fileName); ExpectEvent(watcher, WatcherChangeTypes.Created, action, cleanup, fileName); Assert.True(invoker.BeginInvoke_Called); } }, maxAttempts: DefaultAttemptsForExpectedEvent, backoffFunc: (iteration) => RetryDelayMilliseconds, retryWhen: e => e is XunitException); }
public void File_Move_SynchronizingObject() { using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var dir = new TempDirectory(Path.Combine(testDirectory.Path, "dir"))) using (var testFile = new TempFile(Path.Combine(dir.Path, "file"))) using (var watcher = new FileSystemWatcher(dir.Path, "*")) { TestISynchronizeInvoke invoker = new TestISynchronizeInvoke(); watcher.SynchronizingObject = invoker; string sourcePath = testFile.Path; string targetPath = testFile.Path + "_Renamed"; // Move the testFile to a different name in the same directory Action action = () => File.Move(sourcePath, targetPath); Action cleanup = () => File.Move(targetPath, sourcePath); ExpectEvent(watcher, WatcherChangeTypes.Renamed, action, cleanup, targetPath); Assert.True(invoker.BeginInvoke_Called); } }
public void SynchronizingObject_CalledOnError() { ErrorEventHandler dele = (sender, e) => { Assert.IsType<FileNotFoundException>(e.GetException()); }; TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { ExpectedDelegate = dele }; using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var watcher = new TestFileSystemWatcher(testDirectory.Path, "*")) { watcher.SynchronizingObject = invoker; watcher.Error += dele; watcher.CallOnError(new ErrorEventArgs(new FileNotFoundException())); Assert.True(invoker.BeginInvoke_Called); } }
public void SynchronizingObject_CalledOnRenamed() { RenamedEventHandler dele = (sender, e) => { Assert.Equal(WatcherChangeTypes.Renamed, e.ChangeType); }; TestISynchronizeInvoke invoker = new TestISynchronizeInvoke() { ExpectedDelegate = dele }; using (var testDirectory = new TempDirectory(GetTestFilePath())) using (var watcher = new TestFileSystemWatcher(testDirectory.Path, "*")) { watcher.SynchronizingObject = invoker; watcher.Renamed += dele; watcher.CallOnRenamed(new RenamedEventArgs(WatcherChangeTypes.Changed, "test", "name", "oldname")); Assert.True(invoker.BeginInvoke_Called); } }