コード例 #1
0
        public async Task HandlesOnRenamedEventsThatMatchRootPath()
        {
            using (var root = new DisposableFileSystem())
                using (var fileSystemWatcher = new MockFileSystemWatcher(root.RootPath))
                    using (var physicalFilesWatcher = new PhysicalFilesWatcher(root.RootPath + Path.DirectorySeparatorChar, fileSystemWatcher, pollForChanges: false))
                    {
                        var token  = physicalFilesWatcher.CreateFileChangeToken("**");
                        var called = false;
                        token.RegisterChangeCallback(o => called = true, null);

                        fileSystemWatcher.CallOnRenamed(new RenamedEventArgs(WatcherChangeTypes.Renamed, root.RootPath, string.Empty, string.Empty));
                        await Task.Delay(WaitTimeForTokenToFire).ConfigureAwait(false);

                        Assert.False(called, "Callback should not have been triggered");

                        fileSystemWatcher.CallOnRenamed(new RenamedEventArgs(WatcherChangeTypes.Renamed, root.RootPath, "old.txt", "new.txt"));
                        await Task.Delay(WaitTimeForTokenToFire).ConfigureAwait(false);

                        Assert.True(called, "Callback should have been triggered");
                    }
        }