public void Sets_localised_message_via_expression() { var validator = new TestValidator(); validator.RuleFor(x => x.Surname).NotEmpty().WithLocalizedMessage(() => MyResources.notempty_error); var result = validator.Validate(new Person()); result.Errors.Single().ErrorMessage.ShouldEqual("foo"); }
public void Can_access_expression_in_message() { var v = new TestValidator(); v.RuleFor(x => x.Forename).Matches(@"^\w\d$").WithMessage("test {RegularExpression}"); var result = v.Validate(new Person {Forename = ""}); result.Errors.Single().ErrorMessage.ShouldEqual(@"test ^\w\d$"); }
public void Defaults_user_severity_to_error() { var validator = new TestValidator(); validator.RuleFor(x => x.Lastname).NotNull(); var result = validator.Validate(new ErrorCodeTests.Person()); Assert.AreEqual(Severity.Error, result.Errors.Single().Severity); }
public void Stores_user_severity_against_validation_failure() { var validator = new TestValidator(); validator.RuleFor(x => x.Lastname).NotNull().WithSeverity(Severity.Info); var result = validator.Validate(new ErrorCodeTests.Person()); Assert.AreEqual(Severity.Info, result.Errors.Single().Severity); }
public void Invokes_dependent_rule_if_parent_rule_passes() { var validator = new TestValidator(); validator.RuleFor(x => x.Surname).NotNull() .DependentRules(d => { d.RuleFor(x => x.Forename).NotNull(); }); var results = validator.Validate(new Person {Surname = "foo"}); results.Errors.Count.ShouldEqual(1); results.Errors.Single().PropertyName.ShouldEqual("Forename"); }
public void Throws_exception_with_a_ruleset() { var validator = new TestValidator { v => v.RuleFor(x => x.Surname).NotNull() }; const string ruleSetName = "blah"; validator.RuleSet(ruleSetName, () => { validator.RuleFor(x => x.Forename).NotNull(); }); typeof(ValidationException).ShouldBeThrownBy(() => validator.ValidateAndThrow(new Person(), ruleSetName)); }
public void Dependent_rules_inside_ruleset() { var validator = new TestValidator(); validator.RuleSet("MyRuleSet", () => { validator.RuleFor(x => x.Surname).NotNull() .DependentRules(d => { d.RuleFor(x => x.Forename).NotNull(); }); }); var results = validator.Validate(new Person { Surname = "foo" }, ruleSet: "MyRuleSet"); results.Errors.Count.ShouldEqual(1); results.Errors.Single().PropertyName.ShouldEqual("Forename"); }
public void Dependent_rules_inside_when() { var validator = new TestValidator(); validator.When(o => o != null, () => { validator.RuleFor(o => o.Age).LessThan(1) .DependentRules(d => { d.RuleFor(o => o).NotNull(); }); }); ; var result = validator.Validate((Person)null); result.IsValid.ShouldBeTrue(); }
public void Throws_exception_with_a_ruleset_async() { var validator = new TestValidator { v => v.RuleFor(x => x.Surname).NotNull() }; const string ruleSetName = "blah"; validator.RuleSet(ruleSetName, () => { validator.RuleFor(x => x.Forename).NotNull(); }); typeof(ValidationException).ShouldBeThrownBy(() => { try { validator.ValidateAndThrowAsync(new Person(), ruleSetName).Wait(); } catch (AggregateException agrEx) { throw agrEx.InnerException; } }); }
public void Setting_global_resource_provider_propogates_to_metadata() { ValidatorOptions.ResourceProviderType = typeof(TestMessages); var validator = new TestValidator(); validator.RuleFor(x => x.Forename).NotNull(); var descriptor = validator.CreateDescriptor(); var resourceType = descriptor.GetMembersWithValidators().First().First().ErrorMessageSource.ResourceType; Assert.Equal(typeof (TestMessages), resourceType); }
public void Not_Setting_global_resource_provider_uses_default_messages_in_metadata() { var validator = new TestValidator(); validator.RuleFor(x => x.Forename).NotNull(); var descriptor = validator.CreateDescriptor(); var resourceType = descriptor.GetMembersWithValidators().First().First().ErrorMessageSource.ResourceType; Assert.Equal(typeof(Messages), resourceType); }
public void Can_access_expression_in_message_lambda_regex() { var v = new TestValidator(); v.RuleFor(x => x.Forename).Matches(x => x.AnotherRegex).WithMessage("test {RegularExpression}"); var result = v.Validate(new Person { Forename = "", AnotherRegex = new System.Text.RegularExpressions.Regex(@"^\w\d$") }); result.Errors.Single().ErrorMessage.ShouldEqual(@"test ^\w\d$"); }
public void Does_not_throw_when_valid_and_a_ruleset_async() { var validator = new TestValidator { v => v.RuleFor(x => x.Surname).NotNull() }; const string ruleSetName = "blah"; validator.RuleSet(ruleSetName, () => { validator.RuleFor(x => x.Forename).NotNull(); }); var person = new Person { Forename = "foo", Surname = "foo" }; validator.ValidateAndThrowAsync(person, ruleSetName).Wait(); }
public async Task TestAsyncWithDependentRules_AsyncEntry() { var validator = new TestValidator(); validator.RuleFor(o => o) .MustAsync(async (p, ct) => await Task.FromResult(p != null)) .DependentRules(d => { d.RuleFor(o => o.Address).NotNull(); d.RuleFor(o => o.Age).MustAsync(async (p, token) => await Task.FromResult(p > 10)); }); var result = await validator.ValidateAsync((Person)null); Assert.Equal(1, result.Errors.Count); Assert.True(result.Errors.Any(x => x.PropertyName == "")); result = await validator.ValidateAsync(new Person()); Assert.Equal(2, result.Errors.Count); Assert.True(result.Errors.Count(x => x.PropertyName == "Address") == 1, "Address"); Assert.True(result.Errors.Count(x => x.PropertyName == "Age") == 1, "Age"); }
public void Setup() { validator = new TestValidator(); validator.RuleFor(x => x.Forename).NotNull(); }