本文整理汇总了C#中TestValidator.RuleFor方法的典型用法代码示例。如果您正苦于以下问题:C# TestValidator.RuleFor方法的具体用法?C# TestValidator.RuleFor怎么用?C# TestValidator.RuleFor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TestValidator
的用法示例。
在下文中一共展示了TestValidator.RuleFor方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Sets_localised_message_via_expression
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");
}
示例2: Can_access_expression_in_message
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$");
}
示例3: Invokes_dependent_rule_if_parent_rule_passes
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");
}
示例4: Throws_exception_with_a_ruleset
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));
}
示例5: Dependent_rules_inside_ruleset
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");
}
示例6: Dependent_rules_inside_when
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();
}
示例7: Throws_exception_with_a_ruleset_async
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;
}
});
}
示例8: Setting_global_resource_provider_propogates_to_metadata
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);
}
示例9: Not_Setting_global_resource_provider_uses_default_messages_in_metadata
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);
}
示例10: Can_access_expression_in_message_lambda_regex
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$");
}
示例11: Does_not_throw_when_valid_and_a_ruleset_async
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();
}
示例12: TestAsyncWithDependentRules_AsyncEntry
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");
}
示例13: Setup
public void Setup()
{
validator = new TestValidator();
validator.RuleFor(x => x.Forename).NotNull();
}