Assert foreground thread before dispatching events
This commit is contained in:
parent
b73c50be41
commit
7654f73c54
|
|
@ -9,11 +9,18 @@ namespace Microsoft.CodeAnalysis.Razor.Editor
|
||||||
{
|
{
|
||||||
public override event EventHandler<EditorSettingsChangedEventArgs> Changed;
|
public override event EventHandler<EditorSettingsChangedEventArgs> Changed;
|
||||||
|
|
||||||
|
private readonly ForegroundDispatcher _foregroundDispatcher;
|
||||||
private readonly object SettingsAccessorLock = new object();
|
private readonly object SettingsAccessorLock = new object();
|
||||||
private EditorSettings _settings;
|
private EditorSettings _settings;
|
||||||
|
|
||||||
public DefaultEditorSettingsManagerInternal()
|
public DefaultEditorSettingsManagerInternal(ForegroundDispatcher dispatcher)
|
||||||
{
|
{
|
||||||
|
if (dispatcher == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(dispatcher));
|
||||||
|
}
|
||||||
|
|
||||||
|
_foregroundDispatcher = dispatcher;
|
||||||
_settings = EditorSettings.Default;
|
_settings = EditorSettings.Default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -47,6 +54,8 @@ namespace Microsoft.CodeAnalysis.Razor.Editor
|
||||||
|
|
||||||
private void OnChanged()
|
private void OnChanged()
|
||||||
{
|
{
|
||||||
|
_foregroundDispatcher.AssertForegroundThread();
|
||||||
|
|
||||||
var args = new EditorSettingsChangedEventArgs(Current);
|
var args = new EditorSettingsChangedEventArgs(Current);
|
||||||
Changed?.Invoke(this, args);
|
Changed?.Invoke(this, args);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,9 @@ namespace Microsoft.CodeAnalysis.Razor.Editor
|
||||||
throw new ArgumentNullException(nameof(languageServices));
|
throw new ArgumentNullException(nameof(languageServices));
|
||||||
}
|
}
|
||||||
|
|
||||||
return new DefaultEditorSettingsManagerInternal();
|
var foregroundDispatcher = languageServices.WorkspaceServices.GetRequiredService<ForegroundDispatcher>();
|
||||||
|
|
||||||
|
return new DefaultEditorSettingsManagerInternal(foregroundDispatcher);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -210,12 +210,16 @@ namespace Microsoft.CodeAnalysis.Razor.ProjectSystem
|
||||||
// virtual so it can be overridden in tests
|
// virtual so it can be overridden in tests
|
||||||
protected virtual void NotifyBackgroundWorker(Project project)
|
protected virtual void NotifyBackgroundWorker(Project project)
|
||||||
{
|
{
|
||||||
|
_foregroundDispatcher.AssertForegroundThread();
|
||||||
|
|
||||||
_workerQueue.Enqueue(project);
|
_workerQueue.Enqueue(project);
|
||||||
}
|
}
|
||||||
|
|
||||||
// virtual so it can be overridden in tests
|
// virtual so it can be overridden in tests
|
||||||
protected virtual void NotifyListeners(ProjectChangeEventArgs e)
|
protected virtual void NotifyListeners(ProjectChangeEventArgs e)
|
||||||
{
|
{
|
||||||
|
_foregroundDispatcher.AssertForegroundThread();
|
||||||
|
|
||||||
var handler = Changed;
|
var handler = Changed;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.AspNetCore.Razor.Language;
|
using Microsoft.AspNetCore.Razor.Language;
|
||||||
using Microsoft.CodeAnalysis;
|
using Microsoft.CodeAnalysis;
|
||||||
|
using Microsoft.CodeAnalysis.Razor;
|
||||||
using Microsoft.CodeAnalysis.Razor.Editor;
|
using Microsoft.CodeAnalysis.Razor.Editor;
|
||||||
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
|
using Microsoft.CodeAnalysis.Razor.ProjectSystem;
|
||||||
using Microsoft.VisualStudio.Text;
|
using Microsoft.VisualStudio.Text;
|
||||||
|
|
@ -14,6 +15,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
{
|
{
|
||||||
internal class DefaultVisualStudioDocumentTracker : VisualStudioDocumentTracker
|
internal class DefaultVisualStudioDocumentTracker : VisualStudioDocumentTracker
|
||||||
{
|
{
|
||||||
|
private readonly ForegroundDispatcher _foregroundDispatcher;
|
||||||
private readonly string _filePath;
|
private readonly string _filePath;
|
||||||
private readonly string _projectPath;
|
private readonly string _projectPath;
|
||||||
private readonly ProjectSnapshotManager _projectManager;
|
private readonly ProjectSnapshotManager _projectManager;
|
||||||
|
|
@ -28,6 +30,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public override event EventHandler<ContextChangeEventArgs> ContextChanged;
|
public override event EventHandler<ContextChangeEventArgs> ContextChanged;
|
||||||
|
|
||||||
public DefaultVisualStudioDocumentTracker(
|
public DefaultVisualStudioDocumentTracker(
|
||||||
|
ForegroundDispatcher dispatcher,
|
||||||
string filePath,
|
string filePath,
|
||||||
string projectPath,
|
string projectPath,
|
||||||
ProjectSnapshotManager projectManager,
|
ProjectSnapshotManager projectManager,
|
||||||
|
|
@ -36,6 +39,11 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
ITextBuffer textBuffer,
|
ITextBuffer textBuffer,
|
||||||
ImportDocumentManager importDocumentManager)
|
ImportDocumentManager importDocumentManager)
|
||||||
{
|
{
|
||||||
|
if (dispatcher == null)
|
||||||
|
{
|
||||||
|
throw new ArgumentNullException(nameof(dispatcher));
|
||||||
|
}
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(filePath))
|
if (string.IsNullOrEmpty(filePath))
|
||||||
{
|
{
|
||||||
throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpty, nameof(filePath));
|
throw new ArgumentException(Resources.ArgumentCannotBeNullOrEmpty, nameof(filePath));
|
||||||
|
|
@ -71,6 +79,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
throw new ArgumentNullException(nameof(importDocumentManager));
|
throw new ArgumentNullException(nameof(importDocumentManager));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_foregroundDispatcher = dispatcher;
|
||||||
_filePath = filePath;
|
_filePath = filePath;
|
||||||
_projectPath = projectPath;
|
_projectPath = projectPath;
|
||||||
_projectManager = projectManager;
|
_projectManager = projectManager;
|
||||||
|
|
@ -172,6 +181,8 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
|
|
||||||
private void OnContextChanged(ProjectSnapshot project, ContextChangeKind kind)
|
private void OnContextChanged(ProjectSnapshot project, ContextChangeKind kind)
|
||||||
{
|
{
|
||||||
|
_foregroundDispatcher.AssertForegroundThread();
|
||||||
|
|
||||||
_project = project;
|
_project = project;
|
||||||
|
|
||||||
var handler = ContextChanged;
|
var handler = ContextChanged;
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
|
|
||||||
var projectPath = _projectService.GetProjectPath(project);
|
var projectPath = _projectService.GetProjectPath(project);
|
||||||
|
|
||||||
var tracker = new DefaultVisualStudioDocumentTracker(filePath, projectPath, _projectManager, _editorSettingsManager, _workspace, textBuffer, _importDocumentManager);
|
var tracker = new DefaultVisualStudioDocumentTracker(_foregroundDispatcher, filePath, projectPath, _projectManager, _editorSettingsManager, _workspace, textBuffer, _importDocumentManager);
|
||||||
|
|
||||||
return tracker;
|
return tracker;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
|
|
||||||
private ProjectSnapshotManager ProjectManager => Mock.Of<ProjectSnapshotManager>(p => p.Projects == new List<ProjectSnapshot>());
|
private ProjectSnapshotManager ProjectManager => Mock.Of<ProjectSnapshotManager>(p => p.Projects == new List<ProjectSnapshot>());
|
||||||
|
|
||||||
private EditorSettingsManagerInternal EditorSettingsManager => new DefaultEditorSettingsManagerInternal();
|
private EditorSettingsManagerInternal EditorSettingsManager => new DefaultEditorSettingsManagerInternal(Dispatcher);
|
||||||
|
|
||||||
private ImportDocumentManager ImportDocumentManager => Mock.Of<ImportDocumentManager>();
|
private ImportDocumentManager ImportDocumentManager => Mock.Of<ImportDocumentManager>();
|
||||||
|
|
||||||
|
|
@ -81,7 +81,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
{
|
{
|
||||||
Mock.Of<ITextBuffer>(b => b.ContentType == RazorContentType && b.Properties == new PropertyCollection()),
|
Mock.Of<ITextBuffer>(b => b.ContentType == RazorContentType && b.Properties == new PropertyCollection()),
|
||||||
};
|
};
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager) as VisualStudioDocumentTracker;
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager) as VisualStudioDocumentTracker;
|
||||||
var editorFactoryService = Mock.Of<RazorEditorFactoryService>(factoryService => factoryService.TryGetDocumentTracker(It.IsAny<ITextBuffer>(), out documentTracker) == true);
|
var editorFactoryService = Mock.Of<RazorEditorFactoryService>(factoryService => factoryService.TryGetDocumentTracker(It.IsAny<ITextBuffer>(), out documentTracker) == true);
|
||||||
var documentManager = new DefaultRazorDocumentManager(Dispatcher, editorFactoryService, SupportedProjectService);
|
var documentManager = new DefaultRazorDocumentManager(Dispatcher, editorFactoryService, SupportedProjectService);
|
||||||
|
|
||||||
|
|
@ -102,7 +102,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
Mock.Of<ITextBuffer>(b => b.ContentType == RazorContentType && b.Properties == new PropertyCollection()),
|
Mock.Of<ITextBuffer>(b => b.ContentType == RazorContentType && b.Properties == new PropertyCollection()),
|
||||||
Mock.Of<ITextBuffer>(b => b.ContentType == NonRazorContentType && b.Properties == new PropertyCollection()),
|
Mock.Of<ITextBuffer>(b => b.ContentType == NonRazorContentType && b.Properties == new PropertyCollection()),
|
||||||
};
|
};
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager) as VisualStudioDocumentTracker;
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager) as VisualStudioDocumentTracker;
|
||||||
var editorFactoryService = Mock.Of<RazorEditorFactoryService>(f => f.TryGetDocumentTracker(It.IsAny<ITextBuffer>(), out documentTracker) == true);
|
var editorFactoryService = Mock.Of<RazorEditorFactoryService>(f => f.TryGetDocumentTracker(It.IsAny<ITextBuffer>(), out documentTracker) == true);
|
||||||
var documentManager = new DefaultRazorDocumentManager(Dispatcher, editorFactoryService, SupportedProjectService);
|
var documentManager = new DefaultRazorDocumentManager(Dispatcher, editorFactoryService, SupportedProjectService);
|
||||||
|
|
||||||
|
|
@ -165,12 +165,12 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
};
|
};
|
||||||
|
|
||||||
// Preload the buffer's properties with a tracker, so it's like we've already tracked this one.
|
// Preload the buffer's properties with a tracker, so it's like we've already tracked this one.
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager);
|
||||||
documentTracker.AddTextView(textView1);
|
documentTracker.AddTextView(textView1);
|
||||||
documentTracker.AddTextView(textView2);
|
documentTracker.AddTextView(textView2);
|
||||||
buffers[0].Properties.AddProperty(typeof(VisualStudioDocumentTracker), documentTracker);
|
buffers[0].Properties.AddProperty(typeof(VisualStudioDocumentTracker), documentTracker);
|
||||||
|
|
||||||
documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[1], ImportDocumentManager);
|
documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[1], ImportDocumentManager);
|
||||||
documentTracker.AddTextView(textView1);
|
documentTracker.AddTextView(textView1);
|
||||||
documentTracker.AddTextView(textView2);
|
documentTracker.AddTextView(textView2);
|
||||||
buffers[1].Properties.AddProperty(typeof(VisualStudioDocumentTracker), documentTracker);
|
buffers[1].Properties.AddProperty(typeof(VisualStudioDocumentTracker), documentTracker);
|
||||||
|
|
@ -200,7 +200,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
Mock.Of<ITextBuffer>(b => b.ContentType == RazorContentType && b.Properties == new PropertyCollection()),
|
Mock.Of<ITextBuffer>(b => b.ContentType == RazorContentType && b.Properties == new PropertyCollection()),
|
||||||
Mock.Of<ITextBuffer>(b => b.ContentType == NonRazorContentType && b.Properties == new PropertyCollection()),
|
Mock.Of<ITextBuffer>(b => b.ContentType == NonRazorContentType && b.Properties == new PropertyCollection()),
|
||||||
};
|
};
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, buffers[0], ImportDocumentManager);
|
||||||
buffers[0].Properties.AddProperty(typeof(VisualStudioDocumentTracker), documentTracker);
|
buffers[0].Properties.AddProperty(typeof(VisualStudioDocumentTracker), documentTracker);
|
||||||
var editorFactoryService = Mock.Of<RazorEditorFactoryService>();
|
var editorFactoryService = Mock.Of<RazorEditorFactoryService>();
|
||||||
var documentManager = new DefaultRazorDocumentManager(Dispatcher, editorFactoryService, SupportedProjectService);
|
var documentManager = new DefaultRazorDocumentManager(Dispatcher, editorFactoryService, SupportedProjectService);
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.VisualStudio.Editor.Razor
|
namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
{
|
{
|
||||||
public class DefaultVisualStudioDocumentTrackerTest
|
public class DefaultVisualStudioDocumentTrackerTest : ForegroundDispatcherTestBase
|
||||||
{
|
{
|
||||||
private IContentType RazorContentType { get; } = Mock.Of<IContentType>(c => c.IsOfType(RazorLanguage.ContentType) == true);
|
private IContentType RazorContentType { get; } = Mock.Of<IContentType>(c => c.IsOfType(RazorLanguage.ContentType) == true);
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
|
|
||||||
private ProjectSnapshotManager ProjectManager => Mock.Of<ProjectSnapshotManager>(p => p.Projects == new List<ProjectSnapshot>());
|
private ProjectSnapshotManager ProjectManager => Mock.Of<ProjectSnapshotManager>(p => p.Projects == new List<ProjectSnapshot>());
|
||||||
|
|
||||||
private EditorSettingsManagerInternal EditorSettingsManager => new DefaultEditorSettingsManagerInternal();
|
private EditorSettingsManagerInternal EditorSettingsManager => new DefaultEditorSettingsManagerInternal(Dispatcher);
|
||||||
|
|
||||||
private Workspace Workspace => new AdhocWorkspace();
|
private Workspace Workspace => new AdhocWorkspace();
|
||||||
|
|
||||||
|
|
@ -37,7 +37,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void EditorSettingsManager_Changed_TriggersContextChanged()
|
public void EditorSettingsManager_Changed_TriggersContextChanged()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var called = false;
|
var called = false;
|
||||||
documentTracker.ContextChanged += (sender, args) =>
|
documentTracker.ContextChanged += (sender, args) =>
|
||||||
{
|
{
|
||||||
|
|
@ -57,7 +57,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void ProjectManager_Changed_ProjectChanged_TriggersContextChanged()
|
public void ProjectManager_Changed_ProjectChanged_TriggersContextChanged()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
|
|
||||||
var project = new AdhocWorkspace().AddProject(ProjectInfo.Create(ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: "C:/Some/Path/TestProject.csproj"));
|
var project = new AdhocWorkspace().AddProject(ProjectInfo.Create(ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: "C:/Some/Path/TestProject.csproj"));
|
||||||
var projectSnapshot = new DefaultProjectSnapshot(project);
|
var projectSnapshot = new DefaultProjectSnapshot(project);
|
||||||
|
|
@ -81,7 +81,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void ProjectManager_Changed_TagHelpersChanged_TriggersContextChanged()
|
public void ProjectManager_Changed_TagHelpersChanged_TriggersContextChanged()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
|
|
||||||
var project = new AdhocWorkspace().AddProject(ProjectInfo.Create(ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: "C:/Some/Path/TestProject.csproj"));
|
var project = new AdhocWorkspace().AddProject(ProjectInfo.Create(ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: "C:/Some/Path/TestProject.csproj"));
|
||||||
var projectSnapshot = new DefaultProjectSnapshot(project);
|
var projectSnapshot = new DefaultProjectSnapshot(project);
|
||||||
|
|
@ -105,7 +105,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void ProjectManager_Changed_IgnoresUnknownProject()
|
public void ProjectManager_Changed_IgnoresUnknownProject()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
|
|
||||||
var project = new AdhocWorkspace().AddProject(ProjectInfo.Create(ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: "C:/Some/Other/Path/TestProject.csproj"));
|
var project = new AdhocWorkspace().AddProject(ProjectInfo.Create(ProjectId.CreateNewId(), new VersionStamp(), "Test1", "TestAssembly", LanguageNames.CSharp, filePath: "C:/Some/Other/Path/TestProject.csproj"));
|
||||||
var projectSnapshot = new DefaultProjectSnapshot(project);
|
var projectSnapshot = new DefaultProjectSnapshot(project);
|
||||||
|
|
@ -128,7 +128,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void Import_Changed_ImportAssociatedWithDocument_TriggersContextChanged()
|
public void Import_Changed_ImportAssociatedWithDocument_TriggersContextChanged()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
|
|
||||||
var called = false;
|
var called = false;
|
||||||
documentTracker.ContextChanged += (sender, args) =>
|
documentTracker.ContextChanged += (sender, args) =>
|
||||||
|
|
@ -150,7 +150,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void Import_Changed_UnrelatedImport_DoesNothing()
|
public void Import_Changed_UnrelatedImport_DoesNothing()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
|
|
||||||
documentTracker.ContextChanged += (sender, args) =>
|
documentTracker.ContextChanged += (sender, args) =>
|
||||||
{
|
{
|
||||||
|
|
@ -167,7 +167,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void Subscribe_SetsSupportedProjectAndTriggersContextChanged()
|
public void Subscribe_SetsSupportedProjectAndTriggersContextChanged()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var called = false;
|
var called = false;
|
||||||
documentTracker.ContextChanged += (sender, args) =>
|
documentTracker.ContextChanged += (sender, args) =>
|
||||||
{
|
{
|
||||||
|
|
@ -187,7 +187,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void Unsubscribe_ResetsSupportedProjectAndTriggersContextChanged()
|
public void Unsubscribe_ResetsSupportedProjectAndTriggersContextChanged()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
|
|
||||||
// Subscribe once to set supported project
|
// Subscribe once to set supported project
|
||||||
documentTracker.Subscribe();
|
documentTracker.Subscribe();
|
||||||
|
|
@ -211,7 +211,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void AddTextView_AddsToTextViewCollection()
|
public void AddTextView_AddsToTextViewCollection()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var textView = Mock.Of<ITextView>();
|
var textView = Mock.Of<ITextView>();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -225,7 +225,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void AddTextView_DoesNotAddDuplicateTextViews()
|
public void AddTextView_DoesNotAddDuplicateTextViews()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var textView = Mock.Of<ITextView>();
|
var textView = Mock.Of<ITextView>();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
|
|
@ -240,7 +240,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void AddTextView_AddsMultipleTextViewsToCollection()
|
public void AddTextView_AddsMultipleTextViewsToCollection()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var textView1 = Mock.Of<ITextView>();
|
var textView1 = Mock.Of<ITextView>();
|
||||||
var textView2 = Mock.Of<ITextView>();
|
var textView2 = Mock.Of<ITextView>();
|
||||||
|
|
||||||
|
|
@ -259,7 +259,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void RemoveTextView_RemovesTextViewFromCollection_SingleItem()
|
public void RemoveTextView_RemovesTextViewFromCollection_SingleItem()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var textView = Mock.Of<ITextView>();
|
var textView = Mock.Of<ITextView>();
|
||||||
documentTracker.AddTextView(textView);
|
documentTracker.AddTextView(textView);
|
||||||
|
|
||||||
|
|
@ -274,7 +274,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void RemoveTextView_RemovesTextViewFromCollection_MultipleItems()
|
public void RemoveTextView_RemovesTextViewFromCollection_MultipleItems()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var textView1 = Mock.Of<ITextView>();
|
var textView1 = Mock.Of<ITextView>();
|
||||||
var textView2 = Mock.Of<ITextView>();
|
var textView2 = Mock.Of<ITextView>();
|
||||||
var textView3 = Mock.Of<ITextView>();
|
var textView3 = Mock.Of<ITextView>();
|
||||||
|
|
@ -296,7 +296,7 @@ namespace Microsoft.VisualStudio.Editor.Razor
|
||||||
public void RemoveTextView_NoopsWhenRemovingTextViewNotInCollection()
|
public void RemoveTextView_NoopsWhenRemovingTextViewNotInCollection()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var documentTracker = new DefaultVisualStudioDocumentTracker(FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
var documentTracker = new DefaultVisualStudioDocumentTracker(Dispatcher, FilePath, ProjectPath, ProjectManager, EditorSettingsManager, Workspace, TextBuffer, ImportDocumentManager);
|
||||||
var textView1 = Mock.Of<ITextView>();
|
var textView1 = Mock.Of<ITextView>();
|
||||||
documentTracker.AddTextView(textView1);
|
documentTracker.AddTextView(textView1);
|
||||||
var textView2 = Mock.Of<ITextView>();
|
var textView2 = Mock.Of<ITextView>();
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,13 @@ using Xunit;
|
||||||
|
|
||||||
namespace Microsoft.CodeAnalysis.Razor.Editor
|
namespace Microsoft.CodeAnalysis.Razor.Editor
|
||||||
{
|
{
|
||||||
public class DefaultEditorSettingsManagerInternalTest
|
public class DefaultEditorSettingsManagerInternalTest : ForegroundDispatcherTestBase
|
||||||
{
|
{
|
||||||
[Fact]
|
[Fact]
|
||||||
public void InitialSettingsAreDefault()
|
public void InitialSettingsAreDefault()
|
||||||
{
|
{
|
||||||
// Act
|
// Act
|
||||||
var manager = new DefaultEditorSettingsManagerInternal();
|
var manager = new DefaultEditorSettingsManagerInternal(Dispatcher);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal(EditorSettings.Default, manager.Current);
|
Assert.Equal(EditorSettings.Default, manager.Current);
|
||||||
|
|
@ -21,7 +21,7 @@ namespace Microsoft.CodeAnalysis.Razor.Editor
|
||||||
public void Update_TriggersChangedIfEditorSettingsAreDifferent()
|
public void Update_TriggersChangedIfEditorSettingsAreDifferent()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var manager = new DefaultEditorSettingsManagerInternal();
|
var manager = new DefaultEditorSettingsManagerInternal(Dispatcher);
|
||||||
var called = false;
|
var called = false;
|
||||||
manager.Changed += (caller, args) =>
|
manager.Changed += (caller, args) =>
|
||||||
{
|
{
|
||||||
|
|
@ -41,7 +41,7 @@ namespace Microsoft.CodeAnalysis.Razor.Editor
|
||||||
public void Update_DoesNotTriggerChangedIfEditorSettingsAreSame()
|
public void Update_DoesNotTriggerChangedIfEditorSettingsAreSame()
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var manager = new DefaultEditorSettingsManagerInternal();
|
var manager = new DefaultEditorSettingsManagerInternal(Dispatcher);
|
||||||
var called = false;
|
var called = false;
|
||||||
manager.Changed += (caller, args) =>
|
manager.Changed += (caller, args) =>
|
||||||
{
|
{
|
||||||
Loading…
Reference in New Issue