private ProjectBuilder ProjectBuilderAfterBuildHasBegun(IVsSolutionBuildManager2 buildManager) { var project = Substitute.For<Project>(); var projectBuilder = new ProjectBuilder(buildManager); projectBuilder.BuildAsync(new List<Project> { project }); return projectBuilder; }
private ProjectBuilder ProjectBuilderAfterBuildHasBegun(IVsSolutionBuildManager2 buildManager) { var project = Substitute.For <Project>(); var projectBuilder = new ProjectBuilder(buildManager); projectBuilder.BuildAsync(new List <Project> { project }); return(projectBuilder); }
public void Build_BuildCompletedSuccessfully_TaskResultSetTrue() { var buildManager = BuildManagerWhichReturns(VSConstants.S_OK); var project = Substitute.For<Project>(); var projectBuilder = new ProjectBuilder(buildManager); uint pdwCookie; var buildTask = projectBuilder.BuildAsync(new List<Project> { project }); // Checking that we are subscribed to build events buildManager.ReceivedWithAnyArgs(1) .AdviseUpdateSolutionEvents(Arg.Any<IVsUpdateSolutionEvents>(), out pdwCookie); }
public void Build_BuildCompletedSuccessfully_TaskResultSetTrue() { var buildManager = BuildManagerWhichReturns(VSConstants.S_OK); var project = Substitute.For <Project>(); var projectBuilder = new ProjectBuilder(buildManager); uint pdwCookie; var buildTask = projectBuilder.BuildAsync(new List <Project> { project }); // Checking that we are subscribed to build events buildManager.ReceivedWithAnyArgs(1) .AdviseUpdateSolutionEvents(Arg.Any <IVsUpdateSolutionEvents>(), out pdwCookie); }
public void Build_VsFailsToStartBuild_TaskResultSetFalse() { var buildManager = BuildManagerWhichReturns(VSConstants.S_FALSE); var project = Substitute.For<Project>(); var projectBuilder = new ProjectBuilder(buildManager); uint pdwCookie; var result = projectBuilder.BuildAsync(new List<Project> { project }).Result; Assert.False(result); // Checking that we are not listening to build events // if starting a build was not successful buildManager.DidNotReceiveWithAnyArgs() .AdviseUpdateSolutionEvents(null, out pdwCookie); }
public async Task AnalyzeProjectAsync(ICollection <Project> projects) { var buildSucceeded = await _builder.BuildAsync(projects); if (!buildSucceeded) { throw new PortabilityAnalyzerException(LocalizedStrings.UnableToBuildProject); } // TODO: Add option to include everything in output, not just build artifacts var targetAssemblies = projects.SelectMany(p => p.GetAssemblyPaths().Where(x => !string.IsNullOrEmpty(x))).ToList(); var result = await _analyzer.WriteAnalysisReportsAsync(targetAssemblies, _reportWriter, true); var sourceItems = await Task.Run(() => _sourceLineMapper.GetSourceInfo(targetAssemblies, result)); DisplaySourceItemsInErrorList(sourceItems, projects); }
public void Build_VsFailsToStartBuild_TaskResultSetFalse() { var buildManager = BuildManagerWhichReturns(VSConstants.S_FALSE); var project = Substitute.For <Project>(); var projectBuilder = new ProjectBuilder(buildManager); uint pdwCookie; var result = projectBuilder.BuildAsync(new List <Project> { project }).Result; Assert.False(result); // Checking that we are not listening to build events // if starting a build was not successful buildManager.DidNotReceiveWithAnyArgs() .AdviseUpdateSolutionEvents(null, out pdwCookie); }