public void DefaultEndDateSetToTheEndOfTheCurrentDay()
        {
            DateTime validDate            = DateTime.Today.GetEndOfDay();
            DateTime invalidDate          = validDate.AddSeconds(1);
            var      fakeObjectToValidate = new FakeObjectToValidate {
                NullableDateTime = invalidDate
            };

            IValidationRule <FakeObjectToValidate> rule = new DateMustBeInRangeRule <FakeObjectToValidate>(
                f => f.NullableDateTime, "Nullable DateTime");

            Assert.IsFalse(rule.IsValid(fakeObjectToValidate));
            fakeObjectToValidate.NullableDateTime = validDate;
            Assert.IsTrue(rule.IsValid(fakeObjectToValidate), "The DateTime {0} {1} was supposed to validate to true.",
                          validDate.ToShortDateString(), validDate.ToShortTimeString());
        }
        public void IsValidReturnsFalseWhenSingleObjectValidatesToFalse()
        {
            const string stringToValidate = "Bar";
            var          fake             = new FakeObjectToValidate {
                ListOfStrings = new List <string> {
                    stringToValidate
                }
            };

            Expect.Call(_mockedValidationRule.IsValid(stringToValidate)).Return(false);
            Expect.Call(_mockedValidationRule.GetErrorMessage(stringToValidate)).Return(string.Empty);

            _mocks.ReplayAll();
            bool isValid = _collectionRule.IsValid(fake);

            _mocks.VerifyAll();

            Assert.IsFalse(isValid, "True returned for object single invalid object.");
        }
        public void IsValidReturnsTrueWhenSingleObjectValidatesToTrue()
        {
            const string stringToValidate = "Foo";

            var fake = new FakeObjectToValidate {
                ListOfStrings = new List <string> {
                    stringToValidate
                }
            };

            Expect.Call(_mockedValidationRule.IsValid(stringToValidate)).Return(true);

            _mocks.ReplayAll();
            bool isValid = _collectionRule.IsValid(fake);

            _mocks.VerifyAll();

            Assert.IsTrue(isValid, "False returned for object single valid object.");
        }
        public void IsValidReturnsTrueWhenAllItemsInCollectionAreValid()
        {
            var fake = new FakeObjectToValidate {
                ListOfStrings = new List <string> {
                    "1", "2", "3"
                }
            };

            Expect.Call(_mockedValidationRule.IsValid(fake.ListOfStrings[0])).Return(true);
            Expect.Call(_mockedValidationRule.IsValid(fake.ListOfStrings[1])).Return(true);
            Expect.Call(_mockedValidationRule.IsValid(fake.ListOfStrings[2])).Return(true);

            _mocks.ReplayAll();
            bool isValid = _collectionRule.IsValid(fake);

            _mocks.VerifyAll();

            Assert.IsTrue(isValid, "False returned for object containing all valid objects.");
        }
        public void IsValidReturnsFalseWhenAllButOneItemAreValid()
        {
            var fake = new FakeObjectToValidate {
                ListOfStrings = new List <string> {
                    "1", "2", "3"
                }
            };

            Expect.Call(_mockedValidationRule.IsValid(fake.ListOfStrings[0])).Return(true);
            Expect.Call(_mockedValidationRule.IsValid(fake.ListOfStrings[1])).Return(true);
            Expect.Call(_mockedValidationRule.IsValid(fake.ListOfStrings[2])).Return(false);
            Expect.Call(_mockedValidationRule.GetErrorMessage(fake.ListOfStrings[2])).Return(string.Empty);

            _mocks.ReplayAll();
            bool isValid = _collectionRule.IsValid(fake);

            _mocks.VerifyAll();

            Assert.IsFalse(isValid, "True returned for object containing an invalid object.");
        }