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);
        }
Beispiel #2
0
        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);
        }