コード例 #1
0
ファイル: Analysis.cs プロジェクト: grzesiek-galezowski/nscan
        public int ReturnCode => _analysisReportInProgress.IsFailure() ? -1 : 0; //bug UI implementation leak

        public static Analysis PrepareFor(IEnumerable <CsharpProjectDto> csharpProjectDtos, INScanSupport support)
        {
            return(new Analysis(new AnalysisReportInProgress(new RuleReportFactory()),
                                DependencyAnalysis.PrepareFor(csharpProjectDtos, support),
                                ProjectAnalysis.PrepareFor(csharpProjectDtos),
                                ProjectNamespacesAnalysis.PrepareFor(csharpProjectDtos), new ResultBuilderFactory()));
        }
コード例 #2
0
        public void Analyse(VisualStudioSolutionProject solutionProject, ProjectAnalysis projectAnalysis)
        {
            var configurations = _projectNodeSelector.GetPlatformConfigurations(solutionProject.Project);

            foreach (var configuration in configurations)
            {
                var configurationPlatform = _configurationPlatformParser.GetConfigurationAndPlatform(configuration);

                var configurationPlatformAnalysis = projectAnalysis.GetConfigurationPlatform(
                    configurationPlatform.configuration, configurationPlatform.platform);
                configurationPlatformAnalysis.LanguageVersion = GetLanguageVersion(configuration);
            }
        }
コード例 #3
0
        public void Analyse(VisualStudioSolutionProject solutionProject, ProjectAnalysis projectAnalysis)
        {
            var configurations = _projectNodeSelector.GetPlatformConfigurations(solutionProject.Project);

            foreach (var configuration in configurations)
            {
                var configurationPlatform = _configurationPlatformParser.GetConfigurationAndPlatform(configuration);

                var configurationPlatformAnalysis = projectAnalysis.GetConfigurationPlatform(
                    configurationPlatform.configuration, configurationPlatform.platform);
                configurationPlatformAnalysis.WarningLevel         = GetWarningLevel(configuration);
                configurationPlatformAnalysis.TreatWarningsAsError = GetTreatWarningsAsErrors(configuration);
            }
        }
コード例 #4
0
        public void ShouldApplyTheRulesetToSolution()
        {
            //GIVEN
            var ruleSet         = Any.Instance <IProjectScopedRuleSet>();
            var solution        = Substitute.For <ISolutionForProjectScopedRules>();
            var projectAnalysis = new ProjectAnalysis(solution, ruleSet, Any.Instance <IProjectScopedRuleFactory>());

            var analysisReportInProgress = Any.Instance <IAnalysisReportInProgress>();

            //WHEN
            projectAnalysis.Perform(analysisReportInProgress);

            //THEN
            solution.Received(1).Check(ruleSet, analysisReportInProgress);
        }
コード例 #5
0
        public void Analyse(VisualStudioSolutionProject solutionProject, ProjectAnalysis projectAnalysis)
        {
            var configurations = _projectNodeSelector.GetPlatformConfigurations(solutionProject.Project);

            foreach (var configuration in configurations)
            {
                var configurationPlatform = _configurationPlatformParser.GetConfigurationAndPlatform(configuration);

                var configurationPlatformAnalysis = projectAnalysis.GetConfigurationPlatform(
                    configurationPlatform.configuration, configurationPlatform.platform);

                configurationPlatformAnalysis.CodeAnalysisRuleSet             = GetCodeAnalysisRuleSet(configuration);
                configurationPlatformAnalysis.RunCodeAnalysis                 = GetRunCodeAnalysis(configuration);
                configurationPlatformAnalysis.CodeAnalysisIgnoreGeneratedCode = GetCodeAnalysisIngoreGeneratedCode(configuration);
            }
        }
コード例 #6
0
        public void ShouldAddRuleToRuleSet()
        {
            //GIVEN
            var ruleSet                    = Substitute.For <IProjectScopedRuleSet>();
            var ruleFactory                = Substitute.For <IProjectScopedRuleFactory>();
            var projectAnalysis            = new ProjectAnalysis(Any.Instance <ISolutionForProjectScopedRules>(), ruleSet, ruleFactory);
            var dto1                       = Any.Instance <CorrectNamespacesRuleComplementDto>();
            var dto2                       = Any.Instance <HasAttributesOnRuleComplementDto>();
            var dto3                       = Any.Instance <HasTargetFrameworkRuleComplementDto>();
            var dto4                       = Any.Instance <HasPropertyRuleComplementDto>();
            var projectScopedRuleUnionDtos = new List <ProjectScopedRuleUnionDto>
            {
                ProjectScopedRuleUnionDto.With(dto1),
                ProjectScopedRuleUnionDto.With(dto2),
                ProjectScopedRuleUnionDto.With(dto3),
                ProjectScopedRuleUnionDto.With(dto4)
            };

            var rule1 = Any.Instance <IProjectScopedRule>();
            var rule2 = Any.Instance <IProjectScopedRule>();
            var rule3 = Any.Instance <IProjectScopedRule>();
            var rule4 = Any.Instance <IProjectScopedRule>();

            ruleFactory.CreateProjectScopedRuleFrom(dto1).Returns(rule1);
            ruleFactory.CreateProjectScopedRuleFrom(dto2).Returns(rule2);
            ruleFactory.CreateProjectScopedRuleFrom(dto3).Returns(rule3);
            ruleFactory.CreateProjectScopedRuleFrom(dto4).Returns(rule4);

            //WHEN
            projectAnalysis.Add(projectScopedRuleUnionDtos);

            //THEN
            Received.InOrder(() =>
            {
                ruleSet.Add(rule1);
                ruleSet.Add(rule2);
                ruleSet.Add(rule3);
                ruleSet.Add(rule4);
            });
        }
 public void Analyse(VisualStudioSolutionProject solutionProject, ProjectAnalysis projectAnalysis)
 {
     projectAnalysis.Framework = DetectFramework(solutionProject);
 }