Exemple #1
0
        public void UpdateRelevantFileOneSubscriptionDifferentCaseRelPath()
        {
            List <string>            updates     = new List <string>();
            FakeDirectoryTreeWatcher watcher     = new FakeDirectoryTreeWatcher(new DirectoryInfo(@"X:\root"));
            DirectoryTreeWatcherBase watcherBase = watcher;

            watcherBase.Subscribe(@"..\ROOT\file1.txt", f => updates.Add(f.FullName));

            FakeDirectoryWatcher innerWatcher = watcher.Watchers.Should().ContainSingle().Which;

            innerWatcher.Update(@"X:\root\FILE1.txt");

            updates.Should().ContainSingle().Which.Should().Be(@"X:\ROOT\file1.txt");
        }
Exemple #2
0
        public void UpdateIrrelevantFileOneSubscription()
        {
            List <string>            updates     = new List <string>();
            FakeDirectoryTreeWatcher watcher     = new FakeDirectoryTreeWatcher(new DirectoryInfo(@"X:\root"));
            DirectoryTreeWatcherBase watcherBase = watcher;

            watcherBase.Subscribe("file1.txt", f => updates.Add(f.FullName));

            FakeDirectoryWatcher innerWatcher = watcher.Watchers.Should().ContainSingle().Which;

            innerWatcher.Update(@"X:\root\not-relevant.txt");

            updates.Should().BeEmpty();
        }
Exemple #3
0
        public void UpdateAfterDispose()
        {
            List <string>            updates = new List <string>();
            FakeDirectoryTreeWatcher watcher = new FakeDirectoryTreeWatcher(new DirectoryInfo(@"X:\root"));

            using (DirectoryTreeWatcherBase watcherBase = watcher)
            {
                watcherBase.Subscribe("file1.txt", f => updates.Add(f.FullName));
            }

            FakeDirectoryWatcher innerWatcher = watcher.Watchers.Should().ContainSingle().Which;

            innerWatcher.Update(@"X:\root\file1.txt");

            updates.Should().BeEmpty();
        }
Exemple #4
0
        public void UpdateTwoFilesTwoSubscriptionsDifferentDir()
        {
            List <string>            updates     = new List <string>();
            FakeDirectoryTreeWatcher watcher     = new FakeDirectoryTreeWatcher(new DirectoryInfo(@"X:\root"));
            DirectoryTreeWatcherBase watcherBase = watcher;

            watcherBase.Subscribe(@"inner1\file1.txt", f => updates.Add(f.FullName));
            watcherBase.Subscribe(@"inner2\file2.txt", f => updates.Add(f.FullName));

            watcher.Watchers.Should().HaveCount(2);
            watcher.Watchers[1].Update(@"X:\root\inner2\file2.txt");
            watcher.Watchers[0].Update(@"X:\root\inner1\file1.txt");

            updates.Should().HaveCount(2).And.ContainInOrder(
                @"X:\root\inner2\file2.txt",
                @"X:\root\inner1\file1.txt");
        }
Exemple #5
0
        public void UpdateTwoFilesTwoSubscriptionsSameDirDifferentCase()
        {
            List <string>            updates     = new List <string>();
            FakeDirectoryTreeWatcher watcher     = new FakeDirectoryTreeWatcher(new DirectoryInfo(@"X:\root"));
            DirectoryTreeWatcherBase watcherBase = watcher;

            watcherBase.Subscribe(@"inner\file1.txt", f => updates.Add(f.FullName));
            watcherBase.Subscribe(@"INNER\file2.txt", f => updates.Add(f.FullName));

            FakeDirectoryWatcher innerWatcher = watcher.Watchers.Should().ContainSingle().Which;

            innerWatcher.Update(@"X:\root\inner\file2.txt");
            innerWatcher.Update(@"X:\root\inner\file1.txt");

            updates.Should().HaveCount(2).And.ContainInOrder(
                @"X:\root\inner\file2.txt",
                @"X:\root\inner\file1.txt");
        }
Exemple #6
0
        public void AfterSubscriptionDisposeSubscribeAgainAndUpdate()
        {
            List <string>            updates     = new List <string>();
            FakeDirectoryTreeWatcher watcher     = new FakeDirectoryTreeWatcher(new DirectoryInfo(@"X:\root"));
            DirectoryTreeWatcherBase watcherBase = watcher;

            using (watcherBase.Subscribe("file1.txt", f => updates.Add(f.FullName)))
            {
            }

            watcherBase.Subscribe("file1.txt", f => updates.Add(f.FullName));
            watcherBase.Subscribe("file2.txt", f => updates.Add(f.FullName));
            FakeDirectoryWatcher innerWatcher = watcher.Watchers.Should().ContainSingle().Which;

            innerWatcher.Update(@"X:\root\file1.txt");
            innerWatcher.Update(@"X:\root\file2.txt");

            updates.Should().HaveCount(2).And.ContainInOrder(
                @"X:\root\file1.txt",
                @"X:\root\file2.txt");
        }