public void Test_BOIsValid_WhenBORuleIsNotValid_ShouldBeNotValid()
        {
            //---------------Set up test pack-------------------
            var bo = new MyBO();
            var ruleStub = new BusinessObjectRuleStub(false) {Message = TestUtil.GetRandomString()};
            string msg;
            IList<IBOError> msgList;
            //---------------Assert Precondition----------------
            Assert.IsFalse(ruleStub.IsValid());

            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            //---------------Execute Test ----------------------
            bo = new MyBO();
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsFalse(bo.Status.IsValid());
            Assert.IsFalse(bo.Status.IsValid(out msg));
            Assert.IsFalse(bo.Status.IsValid(out msgList));
            Assert.AreEqual(1, msgList.Count);
            TestUtil.AssertStringNotEmpty(msg, "msg");
            IBOError error = msgList[0];
            Assert.AreEqual(error.Level, ErrorLevel.Error);
            Assert.AreSame(bo, error.BusinessObject);
            IList<IBOError> warningList;
            Assert.IsTrue(bo.Status.HasWarnings(out warningList));
            Assert.AreEqual(1, warningList.Count);
            Assert.AreSame(bo, warningList[0].BusinessObject);
        }
        public void Test_ErrorLevel_WhenRuleIsWarning_ShouldNotBeError()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false, ErrorLevel.Warning);
            IList <IBOError>       msgList;
            string msg;

            //---------------Assert Precondition----------------
            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsFalse(ruleStub.IsValid());
            //---------------Execute Test ----------------------
            bo = new MyBO();
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            Assert.AreEqual(0, msgList.Count);
            TestUtil.AssertStringEmpty(msg, "msg");
            IList <IBOError> warningList;

            Assert.IsTrue(bo.Status.HasWarnings(out warningList));
            Assert.AreEqual(1, warningList.Count);
            Assert.AreSame(bo, warningList[0].BusinessObject);
        }
        public void Test_BOIsValid_WithBO_WhenRuleIsNotValid_ShouldBeNotValid()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            bool isValid = ruleStub.IsValid(bo);

            //---------------Test Result -----------------------
            Assert.IsFalse(isValid);
        }
        public void Test_BOIsValid_WhenRuleIsNull_ShouldNotRaiseError()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false, ErrorLevel.Error);
            IList <IBOError>       msgList;

            //---------------Assert Precondition----------------
            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsFalse(ruleStub.IsValid());
            //---------------Execute Test ----------------------
            bo = new MyBO();
            bo.AddBusinessRule(null);
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsFalse(bo.Status.IsValid(out msgList));
            Assert.AreEqual(1, msgList.Count);
        }
        public void Test_BOIsValid_WhenRuleTwoFailingRules_ShouldReturnTwoErrors()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false, ErrorLevel.Error);
            IList <IBOError>       msgList;

            //---------------Assert Precondition----------------
            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsFalse(ruleStub.IsValid());
            //---------------Execute Test ----------------------
            bo = new MyBO();
            bo.AddBusinessRule(new BusinessObjectRuleStub(false));
            bo.AddBusinessRule(new BusinessObjectRuleStub(true));
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsFalse(bo.Status.IsValid(out msgList));
            Assert.AreEqual(2, msgList.Count);
        }
        public void Test_BOIsValid_WhenBORuleIsValid_ShouldBeValid()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub();
            string msg;
            IList<IBOError> msgList;

            //---------------Assert Precondition----------------
            Assert.IsTrue(ruleStub.IsValid());

            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            //---------------Execute Test ----------------------
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            Assert.AreEqual(0,msgList.Count);
            TestUtil.AssertStringEmpty(msg, "msg");
            Assert.IsFalse(bo.Status.HasWarnings(out msgList));
        }
        public void Test_BOIsValid_WhenBORuleIsNotValid_ShouldBeNotValid()
        {
            //---------------Set up test pack-------------------
            var bo       = new MyBO();
            var ruleStub = new BusinessObjectRuleStub(false)
            {
                Message = TestUtil.GetRandomString()
            };
            string           msg;
            IList <IBOError> msgList;

            //---------------Assert Precondition----------------
            Assert.IsFalse(ruleStub.IsValid());

            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            //---------------Execute Test ----------------------
            bo = new MyBO();
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsFalse(bo.Status.IsValid());
            Assert.IsFalse(bo.Status.IsValid(out msg));
            Assert.IsFalse(bo.Status.IsValid(out msgList));
            Assert.AreEqual(1, msgList.Count);
            TestUtil.AssertStringNotEmpty(msg, "msg");
            IBOError error = msgList[0];

            Assert.AreEqual(error.Level, ErrorLevel.Error);
            Assert.AreSame(bo, error.BusinessObject);
            IList <IBOError> warningList;

            Assert.IsTrue(bo.Status.HasWarnings(out warningList));
            Assert.AreEqual(1, warningList.Count);
            Assert.AreSame(bo, warningList[0].BusinessObject);
        }
        public void Test_BOIsValid_WhenBORuleIsValid_ShouldBeValid()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub();
            string           msg;
            IList <IBOError> msgList;

            //---------------Assert Precondition----------------
            Assert.IsTrue(ruleStub.IsValid());

            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            //---------------Execute Test ----------------------
            bo.AddBusinessRule(ruleStub);
            //---------------Test Result -----------------------
            Assert.IsTrue(bo.Status.IsValid());
            Assert.IsTrue(bo.Status.IsValid(out msg));
            Assert.IsTrue(bo.Status.IsValid(out msgList));
            Assert.AreEqual(0, msgList.Count);
            TestUtil.AssertStringEmpty(msg, "msg");
            Assert.IsFalse(bo.Status.HasWarnings(out msgList));
        }
 public void Test_BOIsValid_WhenRuleTwoFailingRules_ShouldReturnTwoErrors()
 {
     //---------------Set up test pack-------------------
     MyBO bo = new MyBO();
     BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false, ErrorLevel.Error);
     IList<IBOError> msgList;
     //---------------Assert Precondition----------------
     Assert.IsTrue(bo.Status.IsValid());
     Assert.IsFalse(ruleStub.IsValid());
     //---------------Execute Test ----------------------
     bo = new MyBO();
     bo.AddBusinessRule(new BusinessObjectRuleStub(false));
     bo.AddBusinessRule(new BusinessObjectRuleStub(true));
     bo.AddBusinessRule(ruleStub);
     //---------------Test Result -----------------------
     Assert.IsFalse(bo.Status.IsValid(out msgList));
     Assert.AreEqual(2, msgList.Count);
 }
 public void Test_BOIsValid_WhenRuleIsNull_ShouldNotRaiseError()
 {
     //---------------Set up test pack-------------------
     MyBO bo = new MyBO();
     BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false, ErrorLevel.Error);
     IList<IBOError> msgList;
     //---------------Assert Precondition----------------
     Assert.IsTrue(bo.Status.IsValid());
     Assert.IsFalse(ruleStub.IsValid());
     //---------------Execute Test ----------------------
     bo = new MyBO();
     bo.AddBusinessRule(null);
     bo.AddBusinessRule(ruleStub);
     //---------------Test Result -----------------------
     Assert.IsFalse(bo.Status.IsValid(out msgList));
     Assert.AreEqual(1, msgList.Count);
 }
 public void Test_ErrorLevel_WhenRuleIsWarning_ShouldNotBeError()
 {
     //---------------Set up test pack-------------------
     MyBO bo = new MyBO();
     BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false, ErrorLevel.Warning);
     IList<IBOError> msgList;
     string msg;
     //---------------Assert Precondition----------------
     Assert.IsTrue(bo.Status.IsValid());
     Assert.IsFalse(ruleStub.IsValid());
     //---------------Execute Test ----------------------
     bo = new MyBO();
     bo.AddBusinessRule(ruleStub);
     //---------------Test Result -----------------------
     Assert.IsTrue(bo.Status.IsValid());
     Assert.IsTrue(bo.Status.IsValid(out msg));
     Assert.IsTrue(bo.Status.IsValid(out msgList));
     Assert.AreEqual(0, msgList.Count);
     TestUtil.AssertStringEmpty(msg, "msg");
     IList<IBOError> warningList;
     Assert.IsTrue(bo.Status.HasWarnings(out warningList));
     Assert.AreEqual(1, warningList.Count);
     Assert.AreSame(bo, warningList[0].BusinessObject);
 }
        public void Test_BOIsValid_WithBO_WhenRuleIsNotValid_ShouldBeNotValid()
        {
            //---------------Set up test pack-------------------
            MyBO bo = new MyBO();
            BusinessObjectRuleStub ruleStub = new BusinessObjectRuleStub(false);
            //---------------Assert Precondition----------------
            //---------------Execute Test ----------------------
            bool isValid = ruleStub.IsValid(bo);
            //---------------Test Result -----------------------
            Assert.IsFalse(isValid);

        }