public async Task InitializeAsync_RetrievesHostProjectManagerStateAndInitializesGuestManager() { // Arrange var projectHandle = new ProjectSnapshotHandleProxy( new Uri("vsls:/path/project.csproj"), RazorConfiguration.Default, "project", ProjectWorkspaceStateWithTagHelpers); var state = new ProjectSnapshotManagerProxyState(new[] { projectHandle }); var hostProjectManagerProxy = Mock.Of <IProjectSnapshotManagerProxy>( proxy => proxy.GetProjectManagerStateAsync(It.IsAny <CancellationToken>()) == Task.FromResult(state)); var synchronizationService = new ProjectSnapshotSynchronizationService( JoinableTaskFactory, SessionContext, hostProjectManagerProxy, ProjectSnapshotManager); // Act await synchronizationService.InitializeAsync(CancellationToken.None); // Assert var project = Assert.Single(ProjectSnapshotManager.Projects); Assert.Equal("/guest/path/project.csproj", project.FilePath); Assert.Same(RazorConfiguration.Default, project.Configuration); Assert.Same(ProjectWorkspaceStateWithTagHelpers.TagHelpers, project.TagHelpers); }
// Internal for testing internal async Task <ProjectSnapshotManagerProxyState> CalculateUpdatedStateAsync(IReadOnlyList <ProjectSnapshot> projects) { using (await _latestStateSemaphore.EnterAsync().ConfigureAwait(false)) { var projectHandles = new List <ProjectSnapshotHandleProxy>(); foreach (var project in projects) { var projectHandleProxy = ConvertToProxy(project); projectHandles.Add(projectHandleProxy); } _latestState = new ProjectSnapshotManagerProxyState(projectHandles); return(_latestState); } }