示例#1
0
        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);
                    }
        }
示例#2
0
        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);
                    }
        }