public void ShouldAddAllProjectScopedRulesFromDtosToRuleSet()
        {
            //GIVEN
            var ruleDto1        = Any.Instance <CorrectNamespacesRuleComplementDto>();
            var ruleDto2        = Any.Instance <HasTargetFrameworkRuleComplementDto>();
            var ruleDto3        = Any.Instance <HasAttributesOnRuleComplementDto>();
            var projectAnalysis = Substitute.For <IProjectAnalysis>();
            var analysis        = new AnalysisBuilder
            {
                ProjectAnalysis = projectAnalysis,
            }.Build();

            var ruleDtos = new[]
            {
                ProjectScopedRuleUnionDto.With(ruleDto1),
                ProjectScopedRuleUnionDto.With(ruleDto2),
                ProjectScopedRuleUnionDto.With(ruleDto3)
            };

            //WHEN
            analysis.AddProjectScopedRules(ruleDtos);

            //THEN
            projectAnalysis.Received(1).Add(ruleDtos);
        }
Esempio n. 2
0
        public IFullProjectScopedRuleConstructed HasProperty(string propertyName, string propertyValue)
        {
            var complementDto = HasPropertyComplement(propertyName, propertyValue);

            _projectScopedRuleDto = ProjectScopedRuleUnionDto.With(complementDto);
            _testedRuleDefinition = TestedRuleDefinition.From(complementDto);
            return(this);
        }
Esempio n. 3
0
        public IFullProjectScopedRuleConstructed HasCorrectNamespaces()
        {
            var complementDto = CorrectNamespacesRuleComplement();

            _projectScopedRuleDto = ProjectScopedRuleUnionDto.With(complementDto);
            _testedRuleDefinition = TestedRuleDefinition.From(complementDto);
            return(this);
        }
Esempio n. 4
0
        public IFullProjectScopedRuleConstructed HasTargetFramework(string targetFramework)
        {
            var complementDto = HasTargetFrameworkRuleComplement(targetFramework);

            _projectScopedRuleDto = ProjectScopedRuleUnionDto.With(complementDto);
            _testedRuleDefinition = TestedRuleDefinition.From(complementDto);
            return(this);
        }
 private static Parser <ProjectScopedRuleUnionDto> HasProperty(Pattern dependingPattern)
 {
     return(Parse.String(HasPropertyRuleMetadata.HasProperty)
            .Then(_ =>
                  from propertyName in TextUntil(':')
                  from propertyValue in TextUntilEol
                  select ProjectScopedRuleUnionDto.With(
                      new HasPropertyRuleComplementDto(dependingPattern, propertyName, Pattern.WithoutExclusion(propertyValue)))));
 }
 private static Parser <ProjectScopedRuleUnionDto> HasTargetFramework(Pattern dependingPattern)
 {
     return(Parse.String(HasTargetFrameworkRuleMetadata.HasTargetFramework)
            .Then(_ =>
                  from targetFramework in TextUntilEol
                  select ProjectScopedRuleUnionDto.With(
                      new HasTargetFrameworkRuleComplementDto(
                          dependingPattern, targetFramework))));
 }
Esempio n. 7
0
        public IFullProjectScopedRuleConstructed HasDecoratedMethods(string classInclusionPattern, string methodInclusionPattern)
        {
            var complementDto = HasAttributesOnRuleComplement(
                classInclusionPattern,
                methodInclusionPattern);

            _projectScopedRuleDto = ProjectScopedRuleUnionDto.With(complementDto);
            _testedRuleDefinition = TestedRuleDefinition.From(complementDto);
            return(this);
        }
 private static Parser <ProjectScopedRuleUnionDto> HasAttributesOn(Pattern dependingPattern)
 {
     return(Parse.String(HasAttributesOnRuleMetadata.HasAttributesOn)
            .Then(_ =>
                  from classPattern in TextUntil(':')
                  from methodPattern in TextUntilEol
                  select ProjectScopedRuleUnionDto.With(
                      new HasAttributesOnRuleComplementDto(
                          dependingPattern,
                          Pattern.WithoutExclusion(classPattern),
                          Pattern.WithoutExclusion(methodPattern)))));
 }
        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);
            });
        }
Esempio n. 10
0
 public ProjectScopedAnalysisRule(ProjectScopedRuleUnionDto dto)
 {
     _dto = dto;
 }
 HasCorrectNamespacesRuleComplement(Pattern dependingPattern)
 {
     return(Parse.String(HasCorrectNamespacesRuleMetadata.HasCorrectNamespaces)
            .Then(_ => OptionalSpacesUntilEol)
            .Return(ProjectScopedRuleUnionDto.With(new CorrectNamespacesRuleComplementDto(dependingPattern))));
 }