public void GetOrAddFilePathChangeToken_DoesNotAddsPollingChangeTokenWhenCallbackIsDisabled() { 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 changeToken = physicalFilesWatcher.GetOrAddFilePathChangeToken("some-path"); Assert.IsType <CancellationChangeToken>(changeToken); Assert.Empty(physicalFilesWatcher.PollingChangeTokens); } }
public void GetOrAddFilePathChangeToken_AddsPollingChangeTokenWhenPollingIsEnabled() { using (var root = new DisposableFileSystem()) using (var fileSystemWatcher = new MockFileSystemWatcher(root.RootPath)) using (var physicalFilesWatcher = new PhysicalFilesWatcher(root.RootPath + Path.DirectorySeparatorChar, fileSystemWatcher, pollForChanges: true)) { var changeToken = physicalFilesWatcher.GetOrAddFilePathChangeToken("some-path"); var compositeChangeToken = Assert.IsType <CompositeChangeToken>(changeToken); Assert.Collection( compositeChangeToken.ChangeTokens, token => Assert.IsType <CancellationChangeToken>(token), token => { var pollingChangeToken = Assert.IsType <PollingFileChangeToken>(token); Assert.Null(pollingChangeToken.CancellationTokenSource); Assert.False(pollingChangeToken.ActiveChangeCallbacks); }); Assert.Empty(physicalFilesWatcher.PollingChangeTokens); } }
public void GetOrAddFilePathChangeToken_AddsPollingChangeTokenWithCancellationToken_WhenActiveCallbackIsTrue() { using (var root = new TempDirectory(GetTestFilePath())) using (var fileSystemWatcher = new MockFileSystemWatcher(root.Path)) using (var physicalFilesWatcher = new PhysicalFilesWatcher(root.Path + Path.DirectorySeparatorChar, fileSystemWatcher, pollForChanges: true)) { physicalFilesWatcher.UseActivePolling = true; var changeToken = physicalFilesWatcher.GetOrAddFilePathChangeToken("some-path"); var compositeChangeToken = Assert.IsType <CompositeChangeToken>(changeToken); Assert.Collection( compositeChangeToken.ChangeTokens, token => Assert.IsType <CancellationChangeToken>(token), token => { var pollingChangeToken = Assert.IsType <PollingFileChangeToken>(token); Assert.NotNull(pollingChangeToken.CancellationTokenSource); Assert.True(pollingChangeToken.ActiveChangeCallbacks); }); Assert.NotEmpty(physicalFilesWatcher.PollingChangeTokens); } }