public void ShouldNotBeSnappableIfAllRulesReturnFalse() { var ruleMock = new Mock <IRule>(); ruleMock.Setup(x => x.CanSnap(It.IsAny <Cards>())).Returns(false); var rules = new List <IRule> { ruleMock.Object, ruleMock.Object }; var stack = Cards.Empty(); var snapValidator = new SnapValidator(); bool canSnap = snapValidator.CanSnap(stack, rules); Assert.That(canSnap, Is.False); }
public void ShouldPassStackToRule() { var ruleMock = new Mock <IRule>(); ruleMock.Setup(x => x.CanSnap(It.IsAny <Cards>())).Returns(false); var rules = new List <IRule> { ruleMock.Object }; var stack = Cards.Empty(); var snapValidator = new SnapValidator(); snapValidator.CanSnap(stack, rules); ruleMock.Verify(r => r.CanSnap(stack), Times.Once()); }
public void ShouldBeSnappableIfARuleReturnsTrue() { var falseRuleMock = new Mock <IRule>(); var trueRuleMock = new Mock <IRule>(); falseRuleMock.Setup(x => x.CanSnap(It.IsAny <Cards>())).Returns(false); trueRuleMock.Setup(x => x.CanSnap(It.IsAny <Cards>())).Returns(true); var rules = new List <IRule> { falseRuleMock.Object, trueRuleMock.Object }; var stack = Cards.Empty(); var snapValidator = new SnapValidator(); bool canSnap = snapValidator.CanSnap(stack, rules); Assert.That(canSnap, Is.True); }