public void Import_Changed_UnrelatedImport_DoesNothing()
        {
            // Arrange
            DocumentTracker.ContextChanged += (sender, args) => throw new InvalidOperationException();

            var importChangedArgs = new ImportChangedEventArgs("path/to/import", FileChangeKind.Changed, new[] { "path/to/differentfile" });

            // Act & Assert (Does not throw)
            DocumentTracker.Import_Changed(null, importChangedArgs);
        }
Ejemplo n.º 2
0
 // Internal for testing
 internal void Import_Changed(object sender, ImportChangedEventArgs args)
 {
     foreach (var path in args.AssociatedDocuments)
     {
         if (string.Equals(_filePath, path, StringComparison.OrdinalIgnoreCase))
         {
             OnContextChanged(_project, ContextChangeKind.ImportsChanged);
             break;
         }
     }
 }
Ejemplo n.º 3
0
        private void OnChanged(ImportTracker importTracker, FileChangeKind changeKind)
        {
            _foregroundDispatcher.AssertForegroundThread();

            if (Changed == null)
            {
                return;
            }

            var args = new ImportChangedEventArgs(importTracker.FilePath, changeKind, importTracker.AssociatedDocuments);

            Changed.Invoke(this, args);
        }
Ejemplo n.º 4
0
        // Internal for testing
        internal void Import_Changed(object sender, ImportChangedEventArgs args)
        {
            _foregroundDispatcher.AssertForegroundThread();

            foreach (var path in args.AssociatedDocuments)
            {
                if (string.Equals(_filePath, path, StringComparison.OrdinalIgnoreCase))
                {
                    OnContextChanged(ContextChangeKind.ImportsChanged);
                    break;
                }
            }
        }
        private void OnChanged(ImportTracker importTracker, FileChangeKind changeKind)
        {
            _projectSnapshotManagerDispatcher.AssertDispatcherThread();

            if (Changed is null)
            {
                return;
            }

            var args = new ImportChangedEventArgs(importTracker.FilePath, changeKind, importTracker.AssociatedDocuments);

            Changed.Invoke(this, args);
        }
        internal void Import_Changed(object sender, ImportChangedEventArgs args)
        {
            _projectSnapshotManagerDispatcher.AssertDispatcherThread();

            foreach (var path in args.AssociatedDocuments)
            {
                if (string.Equals(_filePath, path, StringComparison.OrdinalIgnoreCase))
                {
                    _ = OnContextChangedAsync(ContextChangeKind.ImportsChanged);
                    break;
                }
            }
        }
Ejemplo n.º 7
0
        public void Import_Changed_UnrelatedImport_DoesNothing()
        {
            // Arrange
            var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, WorkspaceEditorSettings, Workspace, TextBuffer, ImportDocumentManager);

            documentTracker.ContextChanged += (sender, args) =>
            {
                throw new InvalidOperationException();
            };

            var importChangedArgs = new ImportChangedEventArgs("path/to/import", FileChangeKind.Changed, new[] { "path/to/differentfile" });

            // Act & Assert (Does not throw)
            documentTracker.Import_Changed(null, importChangedArgs);
        }
        public void Import_Changed_ImportAssociatedWithDocument_TriggersContextChanged()
        {
            // Arrange
            var called = false;

            DocumentTracker.ContextChanged += (sender, args) =>
            {
                Assert.Equal(ContextChangeKind.ImportsChanged, args.Kind);
                called = true;
            };

            var importChangedArgs = new ImportChangedEventArgs("path/to/import", FileChangeKind.Changed, new[] { FilePath });

            // Act
            DocumentTracker.Import_Changed(null, importChangedArgs);

            // Assert
            Assert.True(called);
        }
Ejemplo n.º 9
0
        public void Import_Changed_ImportAssociatedWithDocument_TriggersContextChanged()
        {
            // Arrange
            var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, WorkspaceEditorSettings, Workspace, TextBuffer, ImportDocumentManager);

            var called = false;

            documentTracker.ContextChanged += (sender, args) =>
            {
                Assert.Equal(ContextChangeKind.ImportsChanged, args.Kind);
                called = true;
            };

            var importChangedArgs = new ImportChangedEventArgs("path/to/import", FileChangeKind.Changed, new[] { FilePath });

            // Act
            documentTracker.Import_Changed(null, importChangedArgs);

            // Assert
            Assert.True(called);
        }