Esempio n. 1
0
        public async Task When_ObjectToValidateDoesNotMatchPredicateRequirements_Then_ValidationErrorIsReturned()
        {
            // Arrange:
            var errorMessage = "cannot be null";
            var errorCode    = "NOT_NULL";
            Func <string, Task <bool> > isNotNullPredicate = async s =>
            {
                await Task.Delay(1);

                return(s != null);
            };

            string toValidate      = null;
            var    toValidateAsObj = (object)toValidate;

            // Act:
            var validationRule = new AsyncValidationRule <string>(isNotNullPredicate, errorMessage, errorCode);
            var result         = await validationRule.Validate(toValidate);

            var resultForObj = await validationRule.Validate(toValidateAsObj);

            // Assert:
            result.Count.Should().Be(1);
            result.First().ErrorMessage.Should().Be("cannot be null");
            result.First().ErrorCode.Should().Be("NOT_NULL");
            result.First().ProvidedValue.Should().Be(toValidate);
            result.First().PropertyPath.IsEmpty.Should().BeTrue();

            resultForObj.Count.Should().Be(1);
            resultForObj.First().ErrorMessage.Should().Be("cannot be null");
            resultForObj.First().ErrorCode.Should().Be("NOT_NULL");
            resultForObj.First().PropertyPath.IsEmpty.Should().BeTrue();
            resultForObj.First().ProvidedValue.Should().Be(toValidate);
        }
Esempio n. 2
0
        public async Task When_ObjectToValidateMatchPredicateRequirements_Then_NoValidationErrorsAreReturned()
        {
            // Arrange:
            var errorMessage = "cannot be null";
            var errorCode    = "NOT_NULL";
            Func <string, Task <bool> > isNotNullPredicate = async s =>
            {
                await Task.Delay(1);

                return(s != null);
            };

            var toValidate      = "some value";
            var toValidateAsObj = (object)toValidate;

            // Act:
            var validationRule = new AsyncValidationRule <string>(isNotNullPredicate, errorMessage, errorCode);
            var result         = await validationRule.Validate(toValidate);

            var resultForObj = await validationRule.Validate(toValidateAsObj);

            // Assert:
            result.Count.Should().Be(0);
            resultForObj.Count.Should().Be(0);
        }
Esempio n. 3
0
        public AsyncPropertyValidator <TProp> AddRule(Func <TProp, Task <bool> > predicate, string errorMessage, string errorCode = null)
        {
            var validationRule = new AsyncValidationRule <TProp>(predicate, errorMessage, errorCode);

            ValidationTasks.Add(new ValidationTask(validationRule, false));

            return(this);
        }
        public AsyncPropertyValidationBuilder <TObject, TProperty> AddAsyncRule(Func <TProperty, Task <bool> > validationPredicate,
                                                                                string errorMessage, string errorCode = null)
        {
            var rule = new AsyncValidationRule <TProperty>(validationPredicate, errorMessage, errorCode);

            PropertyValidator.Rules.Add(rule);

            return(this);
        }