public void ShouldReturnDescriptionBasedOnDto() { //GIVEN var dto = Any.Instance <NoCircularUsingsRuleComplementDto>(); var rule = new NoCircularUsingsRule(dto, Any.Instance <INamespaceBasedRuleViolationFactory>()); //WHEN var description = rule.Description(); //THEN description.Should().Be( new RuleDescription($"{dto.ProjectAssemblyNamePattern.Text()} {dto.RuleName}")); }
public void ShouldReportErrorWhenNamespacesCacheContainsAnyCycles() { //GIVEN var ruleViolationFactory = Substitute.For <INamespaceBasedRuleViolationFactory>(); var rule = new NoCircularUsingsRule(Any.Instance <NoCircularUsingsRuleComplementDto>(), ruleViolationFactory); var cache = Substitute.For <INamespacesDependenciesCache>(); var report = Substitute.For <IAnalysisReportInProgress>(); var cycles = Any.ReadOnlyList <NamespaceDependencyPath>(); var violation = Any.Instance <RuleViolation>(); var projectAssemblyName = Any.Instance <AssemblyName>(); cache.RetrieveCycles().Returns(cycles); ruleViolationFactory.NoCyclesRuleViolation( rule.Description(), projectAssemblyName, cycles).Returns(violation); //WHEN rule.Evaluate(projectAssemblyName, cache, report); //THEN report.Received(1).Add(violation); }