public Task<bool> ExecuteAsync(ITaskCoverageManager taskCoverageManager, IVsSolutionTestCoverage vsSolutionTestCoverage, IDocumentProvider documentProvider) { string methodName = Method.Identifier.ValueText; RaiseTaskStartedEvent(taskCoverageManager); var documentSyntaxTree = documentProvider.GetSyntaxNodeFromTextSnapshot(TextBuffer.CurrentSnapshot); var methodNode = documentSyntaxTree.DescendantNodes() .OfType<MethodDeclarationSyntax>() .FirstOrDefault(x => x.Identifier.ValueText == methodName); if (methodNode == null) return Task.FromResult(false); Task<bool> task = vsSolutionTestCoverage.CalculateForSelectedMethodAsync(ProjectName, methodNode); var finalTask = task.ContinueWith((x, y) => { if(!x.Result) taskCoverageManager.ReportTaskToRetry(this); RaiseTasCompletedEvent(taskCoverageManager); return x.Result; }, null, TaskSchedulerManager.Current.FromSynchronizationContext()); return finalTask; }
public CoverageOverviewViewModel(ITestExplorer testExplorer, ICoverageSettingsStore settingsStore, IVsSolutionTestCoverage vsSolutionTestCoverage) { _testExplorer = testExplorer; _settingsStore = settingsStore; _vsSolutionTestCoverage = vsSolutionTestCoverage; TestProjects = new ObservableCollection<TestProjectViewModel>(); RefreshCmd = new DelegateCommand(RefreshAsync); ResyncCmd=new DelegateCommand(Resync); }
public TaskCoverageManager(ITimer timer, IDocumentProvider documentProvider, IVsSolutionTestCoverage vsSolutionTestCoverage) { _timer = timer; _documentProvider = documentProvider; _tasks = new List<ITaskCoverageInfo>(); _vsSolutionTestCoverage = vsSolutionTestCoverage; }
public Task<bool> ExecuteAsync(ITaskCoverageManager taskCoverageManager, IVsSolutionTestCoverage vsSolutionTestCoverage, IDocumentProvider documentProvider) { taskCoverageManager.RaiseEvent(new ResyncAllStarted()); var task = vsSolutionTestCoverage.CalculateForAllDocumentsAsync(); var finalTask = task.ContinueWith((finishedTask, y) => { taskCoverageManager.RaiseEvent(new ResyncAllCompleted()); return finishedTask.Result; }, null, TaskSchedulerManager.Current.FromSynchronizationContext()); return finalTask; }
public Task<bool> ExecuteAsync(ITaskCoverageManager taskCoverageManager, IVsSolutionTestCoverage vsSolutionTestCoverage, IDocumentProvider documentProvider) { taskCoverageManager.RaiseEvent(new DocumentCoverageTaskStartedArgs(DocumentPath)); string documentContent = TextBuffer.CurrentSnapshot.GetText(); var task = vsSolutionTestCoverage.CalculateForDocumentAsync(ProjectName, DocumentPath, documentContent); var finalTask = task.ContinueWith((finishedTask, y) => { if (finishedTask.Result) taskCoverageManager.Tasks.RemoveAll(t => IsTaskInDocument(t, DocumentPath)); else taskCoverageManager.ReportTaskToRetry(this); taskCoverageManager.RaiseEvent(new DocumentCoverageTaskCompletedArgs(DocumentPath)); return finishedTask.Result; }, null, TaskSchedulerManager.Current.FromSynchronizationContext()); return finalTask; }
public void Setup() { _vsSolutionTestCoverageMock = Substitute.For<IVsSolutionTestCoverage>(); _timerMock = new TimerMock(); _documentProviderMock = Substitute.For<IDocumentProvider>(); var textSnapshotMock = Substitute.For<ITextSnapshot>(); _textBufferMock = Substitute.For<ITextBuffer>(); _textBufferMock.CurrentSnapshot.Returns(textSnapshotMock); _sut = new TaskCoverageManager(_timerMock, _documentProviderMock, _vsSolutionTestCoverageMock); var taskSchedulerMock = Substitute.For<ITaskSchedulerManager>(); SynchronizationContext.SetSynchronizationContext(new TestSyncContext()); var synchronizationTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext(); taskSchedulerMock.FromSynchronizationContext().Returns(synchronizationTaskScheduler); TaskSchedulerManager.Current = taskSchedulerMock; }