public void ShouldNotDelegateToInnerRuleWhenProjectDoesNotMatchExpectedPattern() { //GIVEN var innerRule = Substitute.For <IProjectScopedRule>(); var projectPattern = Any.Pattern(); var rule = new ProjectScopedRuleApplicableToMatchingProject(projectPattern, innerRule); var target = Substitute.For <IProjectScopedRuleTarget>(); var report = Any.Instance <IAnalysisReportInProgress>(); target.HasProjectAssemblyNameMatching(projectPattern).Returns(false); //WHEN rule.Check(target, report); //THEN innerRule.ReceivedNothing(); }
public void ShouldDelegateToInnerRuleWhenProjectMatchesExpectedPattern() { //GIVEN var innerRule = Substitute.For <IProjectScopedRule>(); var projectPattern = Any.Pattern(); var rule = new ProjectScopedRuleApplicableToMatchingProject(projectPattern, innerRule); var target = Substitute.For <IProjectScopedRuleTarget>(); var report = Any.Instance <IAnalysisReportInProgress>(); target.HasProjectAssemblyNameMatching(projectPattern).Returns(true); //WHEN rule.Check(target, report); //THEN Received.InOrder(() => { target.AddInfoAboutMatchingPatternTo(report); innerRule.Check(target, report); }); }