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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }