public async Task ReleaseProjectContextAsync_WhenContextThrows_SwallowsException() { var provider = CreateInstance(); var projectContext = IWorkspaceProjectContextMockFactory.ImplementDispose(() => throw new Exception()); var accessor = IWorkspaceProjectContextAccessorFactory.ImplementContext(projectContext); await provider.ReleaseProjectContextAsync(accessor); }
public async Task ReleaseProjectContextAsync_DisposesContext() { var provider = CreateInstance(); int callCount = 0; var projectContext = IWorkspaceProjectContextMockFactory.ImplementDispose(() => callCount++); var accessor = IWorkspaceProjectContextAccessorFactory.ImplementContext(projectContext); await provider.ReleaseProjectContextAsync(accessor); Assert.Equal(1, callCount); }
public async Task InitializedAsync_WhenInitializedWithContext_RegistersContextWithTracker() { string contextIdResult = null; var activeWorkspaceProjectContextTracker = IActiveEditorContextTrackerFactory.ImplementRegisterContext(id => { contextIdResult = id; }); var context = IWorkspaceProjectContextMockFactory.Create(); var accessor = IWorkspaceProjectContextAccessorFactory.ImplementContext(context, "ContextId"); var provider = new WorkspaceProjectContextProviderMock(); provider.ImplementCreateProjectContextAsync(project => accessor); var instance = await CreateInitializedInstanceAsync(workspaceProjectContextProvider : provider.Object, activeWorkspaceProjectContextTracker : activeWorkspaceProjectContextTracker); Assert.Equal("ContextId", contextIdResult); }
public async Task Dispose_WhenInitializedWithContext_UnregistersContextWithTracker() { IWorkspaceProjectContext result = null; var activeWorkspaceProjectContextTracker = IActiveEditorContextTrackerFactory.ImplementReleaseContext(c => { result = c; }); var context = IWorkspaceProjectContextMockFactory.Create(); var accessor = IWorkspaceProjectContextAccessorFactory.ImplementContext(context); var provider = new WorkspaceProjectContextProviderMock(); provider.ImplementCreateProjectContextAsync(project => accessor); var instance = await CreateInitializedInstanceAsync(workspaceProjectContextProvider : provider.Object, activeWorkspaceProjectContextTracker : activeWorkspaceProjectContextTracker); await instance.DisposeAsync(); Assert.Same(context, result); }