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