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); }
// 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; } } }
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); }
// 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; } } }
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); }
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); }