public RuleExpression WillBeValidatedBy <TValidationRule>(Action <AdditionalPropertyExpression> additionalProperties) where TValidationRule : IValidationRule <CanBeAnyViewModel> { var properties = new AdditionalProperties(); var additionalPropertyExpression = new AdditionalPropertyExpression(properties); additionalProperties(additionalPropertyExpression); _defaultPropertyConvention.AddValidationRule <TValidationRule>(properties); return(this); }
public void Should_be_able_to_add_aditional_required_properties_to_validation_rule() { DefaultPropertyConvention defaultPropertyConvention = new DefaultPropertyConvention(x => x.Name.Contains("question")); var properties = new AdditionalProperties(); var expression = new AdditionalPropertyExpression(properties); expression.NeedsAdditionalPropertyMatching(p => p.Name.Contains("answer")); expression.NeedsAdditionalPropertyMatching(p => !p.Name.Contains("question")); defaultPropertyConvention.AddValidationRule <IsRequired <CanBeAnyViewModel> >(properties); defaultPropertyConvention.GetValidationRules().Count().ShouldEqual(1); defaultPropertyConvention.GetAdditionalPropertiesForRule(defaultPropertyConvention.GetValidationRules().First()).Count().ShouldEqual(2); }