Пример #1
0
        public void DefaultErrorMessage_GreaterThanOrEqualValidator()
        {
            var validator = new GreaterThanOrEqualValidator(1);

            Assert.That(validator.ErrorMessageSource, Is.TypeOf(typeof(LocalizedStringSource)));
            Assert.That(validator.ErrorMessageSource.GetString(), Is.EqualTo(Messages.greaterthanorequal_error));
        }
        public void Should_create_greaterthanorequaladapter_for_greaterthanorequalvalidator()
        {
            // Given
            var validator = new GreaterThanOrEqualValidator(1);

            // When
            var result = factory.Create(this.rule, validator);

            // Then
            result.ShouldBeOfType <GreaterThanOrEqualAdapter>();
        }
        private ValidationMessage GreaterThanOrEqualTo <TProp>(
            TProp value,
            TProp valueToCompare,
            IComparer <TProp> comparer = null,
            ValidationMessageType validationMessageType = ValidationMessageType.Error)
            where TProp : IComparable <TProp>
        {
            var greaterThanOrEqualToValidator = new GreaterThanOrEqualValidator <TestValidatableObject, TProp>(_ => valueToCompare, comparer, validationMessageType);
            var context           = new ValidationContext <TestValidatableObject, TProp>(null, nameof(TestValidatableObject.Number), null, value);
            var validationMessage = greaterThanOrEqualToValidator.ValidateProperty(context).FirstOrDefault();

            return(validationMessage);
        }
        public void Format_IComparisonValidators()
        {
            var validator1 = new EqualValidator(5);
            var validator2 = new NotEqualValidator(10);
            var validator3 = new GreaterThanValidator(8);
            var validator4 = new GreaterThanOrEqualValidator(7);
            var validator5 = new LessThanValidator(2);
            var validator6 = new LessThanOrEqualValidator(1);
            var validator7 = new EqualValidator(o => o, typeof(Customer).GetProperty("UserName"));

            Assert.That(_formatter.Format(validator1, _typeNameFormatter), Is.EqualTo("EqualValidator { ValueToCompare = '5' }"));
            Assert.That(_formatter.Format(validator2, _typeNameFormatter), Is.EqualTo("NotEqualValidator { ValueToCompare = '10' }"));
            Assert.That(_formatter.Format(validator3, _typeNameFormatter), Is.EqualTo("GreaterThanValidator { ValueToCompare = '8' }"));
            Assert.That(_formatter.Format(validator4, _typeNameFormatter), Is.EqualTo("GreaterThanOrEqualValidator { ValueToCompare = '7' }"));
            Assert.That(_formatter.Format(validator5, _typeNameFormatter), Is.EqualTo("LessThanValidator { ValueToCompare = '2' }"));
            Assert.That(_formatter.Format(validator6, _typeNameFormatter), Is.EqualTo("LessThanOrEqualValidator { ValueToCompare = '1' }"));
            Assert.That(_formatter.Format(validator7, _typeNameFormatter), Is.EqualTo("EqualValidator { MemberToCompare = 'Customer.UserName\r\n' }"));
        }
Пример #5
0
        public override IEnumerable <ModelClientValidationRule> GetClientValidationRules()
        {
            if (!ShouldGenerateClientSideRules())
            {
                yield break;
            }

            string comparisionValuePlaceHolder = "ComparisonValue";

            // Convert validator
            GreaterThanOrEqualValidator greaterThanOrEqualValidator =
                (GreaterThanOrEqualValidator)Validator;

            // Initializ client rule
            ModelClientValidationRule rule = new ModelClientValidationRule();

            rule.ValidationType = "greaterthanorequal";

            MessageFormatter formatter = new MessageFormatter()
                                         .AppendPropertyName(Metadata.DisplayName ?? Rule.PropertyName);

            if (greaterThanOrEqualValidator.MemberToCompare != null)
            {
                // If member has been selected to compare create tule for field.

                // Append comparision member to message
                formatter.AppendArgument(
                    comparisionValuePlaceHolder,
                    greaterThanOrEqualValidator.MemberToCompare.GetDisplayName());

                // Append '*.' to the name of field for prefix merging
                rule.ValidationParameters["field"] = string.Format("*.{0}",
                                                                   greaterThanOrEqualValidator.MemberToCompare.Name);
            }
            else if (greaterThanOrEqualValidator.ValueToCompare != null)
            {
                // If value has been set to compare create rule for value
                string valueToCompare = null;

                if (greaterThanOrEqualValidator.ValueToCompare is DateTime)
                {
                    // If value is of type DateTime convert it to DateTime
                    // and format as yyyy-MM-dd to be able to parse it at client side
                    // easily using jQuery.
                    DateTime dateValueToCompare = (DateTime)greaterThanOrEqualValidator.ValueToCompare;
                    valueToCompare = dateValueToCompare.ToString("yyyy-MM-dd");
                }
                else
                {
                    valueToCompare = greaterThanOrEqualValidator.ValueToCompare.ToString();
                }

                // Append comparision value to message
                formatter.AppendArgument(comparisionValuePlaceHolder, valueToCompare);
                // Set value to compare
                rule.ValidationParameters["value"] = valueToCompare;
            }

            // Set error message or rule
            rule.ErrorMessage = formatter.BuildMessage(Validator.ErrorMessageSource.GetString(null));

            yield return(rule);
        }
Пример #6
0
        public static IRuleBuilder <T> GreaterThanOrEqual <T>(this IRuleBuilder <T> ruleBuilder, dynamic valueToCompare) where T : class
        {
            ruleBuilder.AddRule(GreaterThanOrEqualValidator <T> .New(ruleBuilder, valueToCompare));

            return(ruleBuilder);
        }
        public void Should_create_greaterthanorequaladapter_for_greaterthanorequalvalidator()
        {
            // Given
            var validator = new GreaterThanOrEqualValidator(1);

            // When
            var result = factory.Create(this.rule, validator);

            // Then
            result.ShouldBeOfType<GreaterThanOrEqualAdapter>();
        }