public void GetEqualityResult_returns_false_result_if_any_rule_fails(IEqualityRule <string> rule1, IEqualityRule <string> rule2, string a, string b) { var sut = new MultipleEqualityRuleRunner <string>(new [] { rule1, rule2 }); Mock.Get(rule1) .Setup(x => x.GetEqualityResult(a, b)) .Returns(new EqualityResult(true, new[] { new EqualityRuleResult("Rule 1", true), })); Mock.Get(rule2) .Setup(x => x.GetEqualityResult(a, b)) .Returns(new EqualityResult(true, new[] { new EqualityRuleResult("Rule 2", false), })); var result = sut.GetEqualityResult(a, b); Assert.That(result?.AreEqual, Is.False); }
public void GetEqualityResult_returns_rule_result_for_each_rule(IEqualityRule <string> rule1, IEqualityRule <string> rule2, string a, string b) { var sut = new MultipleEqualityRuleRunner <string>(new [] { rule1, rule2 }); Mock.Get(rule1) .Setup(x => x.GetEqualityResult(a, b)) .Returns(new EqualityResult(true, new[] { new EqualityRuleResult("Rule 1", true), })); Mock.Get(rule2) .Setup(x => x.GetEqualityResult(a, b)) .Returns(new EqualityResult(true, new[] { new EqualityRuleResult("Rule 2", true), })); var result = sut.GetEqualityResult(a, b); Assert.That(result?.RuleResults?.Select(x => x.Name), Is.EquivalentTo(new [] { "Rule 1", "Rule 2" })); }