public async Task GetStateAsync_ReturnsProjectState() { // Arrange var projectSnapshotManager = new TestProjectSnapshotManager(ProjectSnapshot1, ProjectSnapshot2); using var proxy = new DefaultProjectSnapshotManagerProxy( new TestCollaborationSession(true), Dispatcher, projectSnapshotManager, JoinableTaskFactory); // Act var state = await JoinableTaskFactory.RunAsync(() => proxy.GetProjectManagerStateAsync(CancellationToken.None)); // Assert Assert.Collection( state.ProjectHandles, handle => { Assert.Equal("vsls:/path/to/project1.csproj", handle.FilePath.ToString()); Assert.Equal(ProjectSnapshot1.TagHelpers, handle.ProjectWorkspaceState.TagHelpers); }, handle => { Assert.Equal("vsls:/path/to/project2.csproj", handle.FilePath.ToString()); Assert.Equal(ProjectSnapshot2.TagHelpers, handle.ProjectWorkspaceState.TagHelpers); }); }
public async Task GetStateAsync_CachesState() { // Arrange var projectSnapshotManager = new TestProjectSnapshotManager(ProjectSnapshot1); var proxy = new DefaultProjectSnapshotManagerProxy( new TestCollaborationSession(true), Dispatcher, projectSnapshotManager, JoinableTaskFactory); // Act var state1 = await JoinableTaskFactory.RunAsync(() => proxy.GetProjectManagerStateAsync(CancellationToken.None)); var state2 = await JoinableTaskFactory.RunAsync(() => proxy.GetProjectManagerStateAsync(CancellationToken.None)); // Assert Assert.Same(state1, state2); }