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);
        }
Пример #6
0
        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);
        }