コード例 #1
0
        public async Task TestConeOuter_GetItemFiles()
        {
            using var workspace = SetupWorkspace(1);

            var project = workspace.GetAllItems <MockProject> ().Single();

            var newDir = project.BaseDirectory.ParentDirectory.Combine("new_dir");

            Directory.CreateDirectory(newDir);
            var createFile = newDir.Combine("file");

            await FileWatcherService.Add(workspace);

            // Create and validate it's not notified
            File.WriteAllText(createFile, "");
            await WaitForFileChanged(createFile);

            Assert.AreEqual(0, project.Created.Count);

            File.Delete(createFile);

            // Add it to item collection and check it is notified now
            project.Items.Add(new ProjectFile(createFile));
            workspace.GetAllItems <MockWorkspaceItem> ().Single().OnRootDirectoriesChanged(project, false, false);

            await FileWatcherService.Update();

            File.WriteAllText(createFile, "");
            await WaitForFileChanged(createFile);

            Assert.AreEqual(1, project.Created.Count);

            await FileWatcherService.Remove(workspace);
        }
コード例 #2
0
ファイル: WorkspaceItem.cs プロジェクト: wzq0621/monodevelop
        protected override void OnDispose()
        {
            fileStatusTracker.Dispose();
            FileWatcherService.Remove(this).Ignore();

            if (userProperties != null)
            {
                userProperties.Dispose();
            }
            base.OnDispose();
        }
コード例 #3
0
        public async Task TestUnsubscribeWorkspace()
        {
            using var workspace = SetupWorkspace(1);

            await FileWatcherService.Add(workspace);

            await FileWatcherService.Remove(workspace);

            var project = workspace.GetAllItems <MockProject> ().Single();

            await TestAll(project, workspace);

            AssertData(project, Is.EqualTo(0));
        }
コード例 #4
0
        public async Task TestTimings()
        {
            using var workspace = SetupWorkspace(1);

            await FileWatcherService.Add(workspace);

            var project = workspace.GetAllItems <MockProject> ().Single();

            await TestAll(project, workspace);

            Assert.That(FileWatcherService.Timings.GetTimings(FileService.EventDataKind.Created), Is.GreaterThan(TimeSpan.Zero));
            Assert.That(FileWatcherService.Timings.GetTimings(FileService.EventDataKind.Removed), Is.GreaterThan(TimeSpan.Zero));

            await FileWatcherService.Remove(workspace);
        }
コード例 #5
0
        public async Task TestCone()
        {
            using var workspace = SetupWorkspace(2);

            await FileWatcherService.Add(workspace);

            var projects = workspace.GetAllItems <MockProject> ().ToArray();

            await TestAll(projects [0], workspace);

            // Check we have data for project0, but not project 1
            AssertData(projects [0], Is.GreaterThan(0));
            AssertData(projects [1], Is.EqualTo(0));

            await FileWatcherService.Remove(workspace);
        }
コード例 #6
0
        public async Task TestUnsubscribe()
        {
            using var workspace = SetupWorkspace(1);

            await FileWatcherService.Add(workspace);

            var solution = workspace.GetAllItems <MockWorkspaceItem> ().Single();
            var project  = workspace.GetAllItems <MockProject> ().Single();

            solution.OnRootDirectoriesChanged(project, isRemove: true, isAdd: false);

            await TestAll(project, workspace);

            AssertData(project, Is.EqualTo(0));

            await FileWatcherService.Remove(workspace);
        }
コード例 #7
0
        public async Task TestNotificationsSubscribedIncremental()
        {
            using var workspace = SetupWorkspace(0);

            await FileWatcherService.Add(workspace);

            var item        = workspace.GetAllItems <MockWorkspaceItem> ().Single();
            var projectFile = item.BaseDirectory.Combine("project", "project_file");
            var project     = new MockProject(projectFile);

            item.OnRootDirectoriesChanged(project, isRemove: false, isAdd: true);

            await TestAll(project, workspace);

            AssertData(project, Is.GreaterThan(0));

            await FileWatcherService.Remove(workspace);
        }