public void Start() { var filter = "*"; var delay = 0; var fileSystem = Substitute.For<IFileSystem>(); var fileSystemFilter = Substitute.For<IMsBuildFileSystemFilter>(); MsBuildFileSystemWatcher watcher = new MsBuildFileSystemWatcher(ProjectDirectory, filter, delay, fileSystem, fileSystemFilter, log: NullLog.Instance); fileSystemFilter.Received().Seal(); var fileSystemWatchers = new List<IFileSystemWatcher>(); fileSystem.CreateFileSystemWatcher(ProjectDirectory, filter) .Returns(ci => { var w = Substitute.For<IFileSystemWatcher>(); fileSystemWatchers.Add(w); return w; }); watcher.Start(); watcher.Dispose(); foreach (var fileSystemWatcher in fileSystemWatchers) { fileSystemWatcher.Received().Dispose(); } }
public Delay50MsNoFiltering() { _fileSystem = Substitute.For<IFileSystem>(); var watchers = GetWatchersFromMsBuildFileSystemWatcher(_fileSystem); _fileSystemFilter = Substitute.For<IMsBuildFileSystemFilter>(); _fileSystemFilter.IsFileAllowed(Arg.Any<string>(), Arg.Any<FileAttributes>()).ReturnsForAnyArgs(true); _fileSystemFilter.IsDirectoryAllowed(Arg.Any<string>(), Arg.Any<FileAttributes>()).ReturnsForAnyArgs(true); _taskScheduler = new ControlledTaskScheduler(SynchronizationContext.Current); _fileSystemWatcher = new MsBuildFileSystemWatcher(ProjectDirectory, "*", 50, 50, _fileSystem, _fileSystemFilter, Substitute.For<IActionLog>(), _taskScheduler); _taskScheduler.Link(_fileSystemWatcher.SourceBlock, c => { _changeset = c; }); _fileSystemWatcher.Start(); _fileWatcher = watchers.FileWatcher; _directoryWatcher = watchers.DirectoryWatcher; _attributesWatcher = watchers.AttributesWatcher; }
public NoDelayNoFiltering() { _fileSystem = Substitute.For<IFileSystem>(); _fileSystem.GetFileAttributes(Arg.Any<string>()).Throws<FileNotFoundException>(); var watchers = GetWatchersFromMsBuildFileSystemWatcher(_fileSystem); var fileSystemFilter = Substitute.For<IMsBuildFileSystemFilter>(); fileSystemFilter.IsFileAllowed(Arg.Any<string>(), Arg.Any<FileAttributes>()).ReturnsForAnyArgs(true); fileSystemFilter.IsDirectoryAllowed(Arg.Any<string>(), Arg.Any<FileAttributes>()).ReturnsForAnyArgs(true); _taskScheduler = new ControlledTaskScheduler(SynchronizationContext.Current); _fileSystemWatcher = new MsBuildFileSystemWatcher(ProjectDirectory, "*", 0, _fileSystem, fileSystemFilter, _taskScheduler, NullLog.Instance); _fileSystemWatcher.Start(); _fileWatcher = watchers.FileWatcher; _directoryWatcher = watchers.DirectoryWatcher; _attributesWatcher = watchers.AttributesWatcher; }
public NoDelayNoFiltering() { _fileSystem = Substitute.For<IFileSystem>(); _fileSystem.GetFileAttributes(Arg.Any<string>()).Throws<FileNotFoundException>(); _fileSystem.ToLongPath(Arg.Any<string>()).Returns(ci => ci[0]); _fileSystem.ToShortPath(Arg.Any<string>()).Returns(ci => ci[0]); var watchers = GetWatchersFromMsBuildFileSystemWatcher(_fileSystem); var fileSystemFilter = Substitute.For<IMsBuildFileSystemFilter>(); fileSystemFilter.IsFileAllowed(Arg.Any<string>(), Arg.Any<FileAttributes>()).ReturnsForAnyArgs(true); fileSystemFilter.IsDirectoryAllowed(Arg.Any<string>(), Arg.Any<FileAttributes>()).ReturnsForAnyArgs(true); _taskScheduler = new ControlledTaskScheduler(SynchronizationContext.Current); DirectoryInfoStubFactory.Create(_fileSystem, ProjectDirectory); _fileSystemWatcher = new MsBuildFileSystemWatcher(ProjectDirectory, "*", 0, 0, _fileSystem, fileSystemFilter, Substitute.For<IActionLog>(), _taskScheduler); _fileSystemWatcher.Start(); _fileWatcher = watchers.FileWatcher; _directoryWatcher = watchers.DirectoryWatcher; _attributesWatcher = watchers.AttributesWatcher; }