コード例 #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()));
        }
        public void ShouldAddRuleToRuleSet()
        {
            //GIVEN
            var ruleSet     = Substitute.For <INamespacesBasedRuleSet>();
            var ruleFactory = Substitute.For <INamespaceBasedRuleFactory>();
            var analysis    = new ProjectNamespacesAnalysis(Any.Instance <ISolutionForNamespaceBasedRules>(), ruleSet, ruleFactory);
            var dto1        = Any.Instance <NoUsingsRuleComplementDto>();
            var dto2        = Any.Instance <NoCircularUsingsRuleComplementDto>();
            var dto3        = Any.Instance <NoUsingsRuleComplementDto>();
            var projectScopedRuleUnionDtos = new List <NamespaceBasedRuleUnionDto>
            {
                NamespaceBasedRuleUnionDto.With(dto1),
                NamespaceBasedRuleUnionDto.With(dto2),
                NamespaceBasedRuleUnionDto.With(dto3)
            };
            var rule1 = Any.Instance <INamespacesBasedRule>();
            var rule2 = Any.Instance <INamespacesBasedRule>();
            var rule3 = Any.Instance <INamespacesBasedRule>();

            ruleFactory.CreateNamespacesBasedRuleFrom(dto1).Returns(rule1);
            ruleFactory.CreateNamespacesBasedRuleFrom(dto2).Returns(rule2);
            ruleFactory.CreateNamespacesBasedRuleFrom(dto3).Returns(rule3);

            //WHEN
            analysis.Add(projectScopedRuleUnionDtos);

            //THEN
            Received.InOrder(() =>
            {
                ruleSet.Add(rule1);
                ruleSet.Add(rule2);
                ruleSet.Add(rule3);
            });
        }
        public void ShouldBuildCacheApplyTheRulesetToSolutionWhenPerformed()
        {
            //GIVEN
            var ruleSet         = Any.Instance <INamespacesBasedRuleSet>();
            var solution        = Substitute.For <ISolutionForNamespaceBasedRules>();
            var projectAnalysis = new ProjectNamespacesAnalysis(solution, ruleSet, Any.Instance <INamespaceBasedRuleFactory>());

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

            //WHEN
            projectAnalysis.PerformOn(analysisReportInProgress);

            //THEN
            Received.InOrder(() =>
            {
                solution.BuildNamespacesCache();
                solution.Check(ruleSet, analysisReportInProgress);
            });
        }