public void ShouldHaveValidationErrorFor_takes_account_of_rulesets()
        {
            var testValidator = new TestValidator();

            testValidator.RuleSet("Names", () => {
                testValidator.RuleFor(x => x.Surname).NotNull();
                testValidator.RuleFor(x => x.Forename).NotNull();
            });
            testValidator.RuleFor(x => x.Id).NotEqual(0);

            testValidator.TestValidate(new Person(), opt => opt.IncludeRuleSets("Names"))
            .ShouldHaveValidationErrorFor(x => x.Forename);
        }
 public void ShouldHaveValidationError_Should_support_custom_propertynameresolver()
 {
     try {
         ValidatorOptions.Global.PropertyNameResolver = (type, prop, expr) => "foo";
         var validator = new TestValidator()
         {
             v => v.RuleFor(x => x.Surname).NotNull()
         };
         validator.TestValidate(new Person()).ShouldHaveValidationErrorFor(x => x.Surname);
     }
     finally {
         ValidatorOptions.Global.PropertyNameResolver = null;
     }
 }
Пример #3
0
        public void ShouldHaveValidationError_with_an_unmatched_rule_and_a_single_error_should_throw_an_exception()
        {
            var validator = new TestValidator();

            validator.RuleFor(x => x.NullableInt).GreaterThanOrEqualTo(3);

            var result = validator.TestValidate(new Person()
            {
                NullableInt = 1
            });

            var ex = Assert.Throws <ValidationTestException>(() => result.ShouldHaveValidationErrorFor(x => x.NullableInt.Value));

            Assert.Equal("Expected a validation error for property NullableInt.Value\n----\nProperties with Validation Errors:\n[0]: NullableInt\n", ex.Message);
        }
Пример #4
0
        public void ShouldHaveValidationErrorFor_takes_account_of_rulesets_fluent_approach()
        {
            var testValidator = new TestValidator();

            testValidator.RuleSet("Names", () => {
                testValidator.RuleFor(x => x.Surname).NotNull();
                testValidator.RuleFor(x => x.Forename).NotNull();
            });
            testValidator.RuleFor(x => x.Id).NotEqual(0);

            var assertionRoot = testValidator.TestValidate(new Person(), "Names").Which;

            assertionRoot.Property(x => x.Forename).ShouldHaveValidationError().WithErrorCode("notnull_error");
            assertionRoot.Property(x => x.Surname).ShouldHaveValidationError().WithErrorCode("notnull_error");
            assertionRoot.Property(x => x.Id).ShouldNotHaveValidationError();
        }
Пример #5
0
        public void Tests_nested_property_reverse()
        {
            var validator = new TestValidator();

            validator.RuleFor(x => x.Address.Line1).NotEqual("foo");

            var result = validator.TestValidate(new Person()
            {
                Address = new Address {
                    Line1 = "foo"
                }
            });

            var ex = Assert.Throws <ValidationTestException>(() => {
                result.ShouldNotHaveValidationErrorFor(x => x.Address.Line1);
            });

            ex.Message.Contains($"Expected no validation errors for property Address.Line1").ShouldBeTrue();
        }
Пример #6
0
        public void Tests_nested_property()
        {
            var validator = new TestValidator();

            validator.RuleFor(x => x.Address.Line1).NotEqual("foo");

            var result = validator.TestValidate(new Person()
            {
                Address = new Address {
                    Line1 = "bar"
                }
            });

            var ex = Assert.Throws <ValidationTestException>(() => {
                result.ShouldHaveValidationErrorFor(x => x.Address.Line1);
            });

            ex.Message.ShouldEqual("Expected a validation error for property Address.Line1");
        }
        public void ShouldHaveValidationErrorFor_takes_account_of_rulesets_fluent_approach()
        {
            var testValidator = new TestValidator();

            testValidator.RuleSet("Names", () => {
                testValidator.RuleFor(x => x.Surname).NotNull();
                testValidator.RuleFor(x => x.Forename).NotNull();
            });
            testValidator.RuleFor(x => x.Id).NotEqual(0);

#pragma warning disable 618
            var assertionRoot = testValidator.TestValidate(new Person(), "Names");
#pragma warning restore 618

            assertionRoot.ShouldHaveValidationErrorFor(x => x.Forename)
            .WithErrorCode("NotNullValidator");
            assertionRoot.ShouldHaveValidationErrorFor(x => x.Surname).WithErrorCode("NotNullValidator");
            assertionRoot.ShouldNotHaveValidationErrorFor(x => x.Id);
        }