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); }); }