Ejemplo n.º 1
0
        public void InvalidWhenRuleIsInvalid()
        {
            var innerRule = new Mock <IRule <string> >();
            var msg       = "innerRule message";

            innerRule.Setup(r => r.IsValid(It.IsAny <string>())).Returns(false);
            innerRule.Setup(r => r.Message).Returns(msg);
            var count  = 0;
            var parent = new Parent {
                Child = "test"
            };
            var prefix = "starts with";
            var rule   = new ChildRuleChecker <Parent, string>(innerRule.Object,
                                                               p =>
            {
                count++;
                return(p.Child);
            },
                                                               prefix);
            var candidate = rule.IsValid(parent);

            Assert.IsFalse(candidate);
            Assert.AreEqual(1, count);
            innerRule.Verify(r => r.IsValid("test"), Times.Once());
            Assert.AreEqual(prefix + " " + msg, rule.Message);
        }
 public void ValidWhenRuleIsValid()
 {
     var innerRule = new Mock<IRule<string>>();
     innerRule.Setup(r => r.IsValid(It.IsAny<string>())).Returns(true);
     var count = 0;
     var parent = new Parent { Child = "test" };
     var prefix = "starts with";
     var rule = new ChildRuleChecker<Parent, string>(innerRule.Object,
                                                     p =>
                                                     {
                                                         count++;
                                                         return p.Child;
                                                     },
                                                     prefix);
     var candidate = rule.IsValid(parent);
     Assert.IsTrue(candidate);
     innerRule.Verify(r => r.IsValid("test"), Times.Once());
     Assert.AreEqual(1, count);
     Assert.IsTrue(string.IsNullOrEmpty(rule.Message));
 }
 public void InvalidWhenParentIsNull()
 {
     var innerRule = new Mock<IRule<string>>();
     var msg = "innerRule message";
     innerRule.Setup(r => r.IsValid(It.IsAny<string>())).Returns(false);
     innerRule.Setup(r => r.Message).Returns(msg);
     var count = 0;
     var prefix = "starts with";
     var rule = new ChildRuleChecker<Parent, string>(innerRule.Object,
                                                     p =>
                                                     {
                                                         count++;
                                                         return p.Child;
                                                     },
                                                     prefix);
     var candidate = rule.IsValid(null);
     Assert.IsFalse(candidate);
     Assert.AreEqual(0, count);
     innerRule.Verify(r => r.IsValid(It.IsAny<string>()), Times.Never());
     Assert.AreEqual(prefix + " Parent is null, so child item rule cannot be valid", rule.Message);
 }
 public void InvalidWhenRuleIsInvalid()
 {
     var innerRule = new Mock<IRule<string>>();
     var msg = "innerRule message";
     innerRule.Setup(r => r.IsValid(It.IsAny<string>())).Returns(false);
     innerRule.Setup(r => r.Message).Returns(msg);
     var count = 0;
     var parent = new Parent { Child = "test" };
     var prefix = "starts with";
     var rule = new ChildRuleChecker<Parent, string>(innerRule.Object,
                                                     p =>
                                                     {
                                                         count++;
                                                         return p.Child;
                                                     },
                                                     prefix);
     var candidate = rule.IsValid(parent);
     Assert.IsFalse(candidate);
     Assert.AreEqual(1, count);
     innerRule.Verify(r => r.IsValid("test"), Times.Once());
     Assert.AreEqual(prefix + " " + msg, rule.Message);
 }
Ejemplo n.º 5
0
        public void InvalidWhenParentIsNull()
        {
            var innerRule = new Mock <IRule <string> >();
            var msg       = "innerRule message";

            innerRule.Setup(r => r.IsValid(It.IsAny <string>())).Returns(false);
            innerRule.Setup(r => r.Message).Returns(msg);
            var count  = 0;
            var prefix = "starts with";
            var rule   = new ChildRuleChecker <Parent, string>(innerRule.Object,
                                                               p =>
            {
                count++;
                return(p.Child);
            },
                                                               prefix);
            var candidate = rule.IsValid(null);

            Assert.IsFalse(candidate);
            Assert.AreEqual(0, count);
            innerRule.Verify(r => r.IsValid(It.IsAny <string>()), Times.Never());
            Assert.AreEqual(prefix + " Parent is null, so child item rule cannot be valid", rule.Message);
        }
Ejemplo n.º 6
0
        public void ValidWhenRuleIsValid()
        {
            var innerRule = new Mock <IRule <string> >();

            innerRule.Setup(r => r.IsValid(It.IsAny <string>())).Returns(true);
            var count  = 0;
            var parent = new Parent {
                Child = "test"
            };
            var prefix = "starts with";
            var rule   = new ChildRuleChecker <Parent, string>(innerRule.Object,
                                                               p =>
            {
                count++;
                return(p.Child);
            },
                                                               prefix);
            var candidate = rule.IsValid(parent);

            Assert.IsTrue(candidate);
            innerRule.Verify(r => r.IsValid("test"), Times.Once());
            Assert.AreEqual(1, count);
            Assert.IsTrue(string.IsNullOrEmpty(rule.Message));
        }