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