internal async Task ProjectManager_Changed_EnqueuesPublishAsync(ProjectChangeKind changeKind) { // Arrange var serializationSuccessful = false; var projectSnapshot = CreateProjectSnapshot("/path/to/project.csproj"); var expectedPublishFilePath = "/path/to/obj/bin/Debug/project.razor.json"; var publisher = new TestDefaultRazorProjectChangePublisher( JoinableTaskContext, RazorLogger, onSerializeToFile: (snapshot, publishFilePath) => { Assert.Same(projectSnapshot, snapshot); Assert.Equal(expectedPublishFilePath, publishFilePath); serializationSuccessful = true; }) { EnqueueDelay = 10 }; publisher.SetPublishFilePath(projectSnapshot.FilePath, expectedPublishFilePath); var args = ProjectChangeEventArgs.CreateTestInstance(projectSnapshot, projectSnapshot, documentFilePath: null, changeKind); // Act publisher.ProjectSnapshotManager_Changed(null, args); // Assert var kvp = Assert.Single(publisher._deferredPublishTasks); await kvp.Value.ConfigureAwait(false); Assert.True(serializationSuccessful); }
internal async Task ProjectManager_Changed_EnqueuesPublishAsync(ProjectChangeKind changeKind) { // Arrange var serializationSuccessful = false; var projectSnapshot = CreateProjectSnapshot("/path/to/project.csproj", new ProjectWorkspaceState(ImmutableArray <TagHelperDescriptor> .Empty, CodeAnalysis.CSharp.LanguageVersion.Default)); var expectedConfigurationFilePath = "/path/to/obj/bin/Debug/project.razor.json"; var publisher = new TestDefaultRazorProjectChangePublisher( ProjectConfigurationFilePathStore, RazorLogger, onSerializeToFile: (snapshot, configurationFilePath) => { Assert.Same(projectSnapshot, snapshot); Assert.Equal(expectedConfigurationFilePath, configurationFilePath); serializationSuccessful = true; }) { EnqueueDelay = 10, _active = true, }; publisher.Initialize(ProjectSnapshotManager); ProjectConfigurationFilePathStore.Set(projectSnapshot.FilePath, expectedConfigurationFilePath); var args = ProjectChangeEventArgs.CreateTestInstance(projectSnapshot, projectSnapshot, documentFilePath: null, changeKind); // Act publisher.ProjectSnapshotManager_Changed(null, args); // Assert var kvp = Assert.Single(publisher._deferredPublishTasks); await kvp.Value.ConfigureAwait(false); Assert.True(serializationSuccessful); }
public ProjectChangeEventArgs(string projectFilePath, ProjectChangeKind kind) { if (projectFilePath == null) { throw new ArgumentNullException(nameof(projectFilePath)); } ProjectFilePath = projectFilePath; Kind = kind; }
public WorkspaceSnapshotChangeEventArgs(WorkspaceSnapshot older, WorkspaceSnapshot newer, ProjectChangeKind kind) { if (older == null && newer == null) { throw new ArgumentException("Both projects cannot be null."); } Older = older; Newer = newer; Kind = kind; }
public ProjectChangeEventArgs(ProjectSnapshot older, ProjectSnapshot newer, ProjectChangeKind kind) { if (older == null && newer == null) { throw new ArgumentException("Both projects cannot be null."); } Older = older; Newer = newer; Kind = kind; ProjectFilePath = older?.FilePath ?? newer.FilePath; }
public ProjectChangeEventArgs(ProjectSnapshot?older, ProjectSnapshot?newer, string?documentFilePath, ProjectChangeKind kind, bool solutionIsClosing) { if (older is null && newer is null) { throw new ArgumentException("Both projects cannot be null."); } Older = older; Newer = newer; DocumentFilePath = documentFilePath; Kind = kind; SolutionIsClosing = solutionIsClosing; ProjectFilePath = older?.FilePath ?? newer?.FilePath; }
public ProjectChangeEventArgs(string projectFilePath, ProjectChangeKind kind) { ProjectFilePath = projectFilePath; Kind = kind; }
public ProjectChangeEventArgs(ProjectSnapshot older, ProjectSnapshot newer, ProjectChangeKind kind) : this(older, newer, null, kind, false) { }
public static ProjectChangeEventArgs CreateTestInstance(ProjectSnapshot older, ProjectSnapshot newer, string documentFilePath, ProjectChangeKind kind, bool solutionIsClosing = false) =>
public ProjectChangeEventArgs(ProjectSnapshot project, ProjectChangeKind kind) { Project = project; Kind = kind; }
public static ProjectChangeEventArgs CreateTestInstance(ProjectSnapshot older, ProjectSnapshot newer, string documentFilePath, ProjectChangeKind kind) => new ProjectChangeEventArgs(older, newer, documentFilePath, kind);