public void DefaultErrorMessage_NotEqualValidator() { var validator = new NotEqualValidator(null); Assert.That(validator.ErrorMessageSource, Is.TypeOf(typeof(LocalizedStringSource))); Assert.That(validator.ErrorMessageSource.GetString(), Is.EqualTo(Messages.notequal_error)); }
public override IEnumerable <ModelClientValidationRule> GetClientValidationRules() { if (!ShouldGenerateClientSideRules()) { yield break; } string comparisonValuePlaceHolder = "ComparisonValue"; // Convert validator NotEqualValidator notEqualValidator = (NotEqualValidator)Validator; // Initialize client rule ModelClientValidationRule rule = new ModelClientValidationRule(); rule.ValidationType = "notequal"; MessageFormatter formatter = new MessageFormatter() .AppendPropertyName(Metadata.DisplayName ?? Rule.PropertyName); if (notEqualValidator.MemberToCompare != null) { // Append comparision member to message formatter.AppendArgument( comparisonValuePlaceHolder, notEqualValidator.MemberToCompare.GetDisplayName()); // Append '*.' to the name of field for prefix merging rule.ValidationParameters["field"] = string.Format("*.{0}", notEqualValidator.MemberToCompare.Name); } else if (notEqualValidator.ValueToCompare != null) { string valueToCompare = null; if (notEqualValidator.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)notEqualValidator.ValueToCompare; valueToCompare = dateValueToCompare.ToString("yyyy-MM-dd"); } else { valueToCompare = notEqualValidator.ValueToCompare.ToString(); } // Append comparision value to message formatter.AppendArgument(comparisonValuePlaceHolder, valueToCompare); // Set value to compare rule.ValidationParameters["value"] = valueToCompare; } // Set error message of rule rule.ErrorMessage = formatter.BuildMessage(Validator.ErrorMessageSource.GetString(null)); yield return(rule); }
public void Should_create_notequaladapter_for_notequalvalidator() { // Given var validator = new NotEqualValidator(1); // When var result = factory.Create(this.rule, validator); // Then result.ShouldBeOfType <NotEqualAdapter>(); }
public void SetUp() { _property = PropertyInfoAdapter.Create(typeof(Customer).GetProperty("UserName")); _userNameExpression = ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.UserName); _lastNameExpression = ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.LastName); _stubPropertyValidator1 = new StubPropertyValidator(); _stubPropertyValidator2 = new NotEmptyValidator(null); _stubPropertyValidator3 = new NotEqualValidator("gfsf"); _propertyValidatorExtractorMock = MockRepository.GenerateStrictMock <IPropertyValidatorExtractor>(); _addingComponentPropertyRule = AddingComponentPropertyRule.Create(_userNameExpression, typeof(CustomerValidationCollector1)); }
public void SetUp() { _notEmptyValidator = new NotEmptyValidator(null); _notNullValidator = new NotNullValidator(); _notEqualValidator = new NotEqualValidator("test"); _maximumLengthValidator = new MaximumLengthValidator(30); _minimumLengthValidator = new MinimumLengthValidator(5); _componenValidationCollectorStub1 = MockRepository.GenerateStub <IComponentValidationCollector>(); _componenValidationCollectorStub2 = MockRepository.GenerateStub <IComponentValidationCollector>(); _componenValidationCollectorStub3 = MockRepository.GenerateStub <IComponentValidationCollector>(); _firstNameExpression = ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.FirstName); _lastNameExpression = ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.LastName); _addingPropertyRule1 = AddingComponentPropertyRule.Create(_firstNameExpression, _componenValidationCollectorStub1.GetType()); _addingPropertyRule1.RegisterValidator(_notEmptyValidator); _addingPropertyRule1.RegisterValidator(_notNullValidator); _addingPropertyRule1.RegisterValidator(_notEqualValidator); _addingPropertyRule2 = AddingComponentPropertyRule.Create(_lastNameExpression, _componenValidationCollectorStub2.GetType()); _addingPropertyRule2.RegisterValidator(_maximumLengthValidator); _addingPropertyRule3 = AddingComponentPropertyRule.Create(_lastNameExpression, _componenValidationCollectorStub2.GetType()); _addingPropertyRule3.RegisterValidator(_minimumLengthValidator); _addingPropertyRule4 = AddingComponentPropertyRule.Create(_lastNameExpression, _componenValidationCollectorStub2.GetType()); _addingPropertyRule4.RegisterValidator(_notNullValidator); _removingPropertyRule1 = RemovingComponentPropertyRule.Create(_firstNameExpression, typeof(CustomerValidationCollector1)); _removingPropertyRule1.RegisterValidator(typeof(NotEmptyValidator)); _removingPropertyRule2 = RemovingComponentPropertyRule.Create(_firstNameExpression, typeof(CustomerValidationCollector1)); _removingPropertyRule2.RegisterValidator(typeof(NotNullValidator), _componenValidationCollectorStub1.GetType()); _removingPropertyRule3 = RemovingComponentPropertyRule.Create(_firstNameExpression, typeof(CustomerValidationCollector1)); _removingPropertyRule3.RegisterValidator(typeof(NotNullValidator), typeof(string)); //Unknow collector type! _removingPropertyRule4 = RemovingComponentPropertyRule.Create(_lastNameExpression, typeof(CustomerValidationCollector1)); _removingPropertyRule4.RegisterValidator(typeof(MaximumLengthValidator)); _propertyValidatorExtractorFactoryMock = MockRepository.GenerateStrictMock <IPropertyValidatorExtractorFactory>(); _propertyValidatorExtractorMock = MockRepository.GenerateStrictMock <IPropertyValidatorExtractor>(); _merger = new OrderPrecedenceValidationCollectorMerger(_propertyValidatorExtractorFactoryMock); }
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' }")); }
public void SetUp() { _defaultMessageEvaluatorMock = MockRepository.GenerateStrictMock <IDefaultMessageEvaluator>(); _validatorGlobalizationServiceMock = MockRepository.GenerateStrictMock <IErrorMessageGlobalizationService>(); _validator1 = new NotNullValidator(); _errorMessageSource1 = _validator1.ErrorMessageSource; _validator2 = new NotEmptyValidator(null); _errorMessageSource2 = _validator2.ErrorMessageSource; _validator3 = new NotEqualValidator("test"); _errorMessageSource3 = _validator3.ErrorMessageSource; _propertyRule = PropertyRule.Create(ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.LastName)); _propertyRule.AddValidator(_validator1); _propertyRule.AddValidator(_validator2); _propertyRule.AddValidator(_validator3); _service = new ValidationRuleGlobalizationService(_defaultMessageEvaluatorMock, _validatorGlobalizationServiceMock); }
public void SetUp() { _validatorRegistration1 = new ValidatorRegistration(typeof(NotEmptyValidator), null); _validatorRegistration2 = new ValidatorRegistration(typeof(NotEqualValidator), typeof(CustomerValidationCollector1)); _validatorRegistration3 = new ValidatorRegistration(typeof(NotNullValidator), null); _validatorRegistration4 = new ValidatorRegistration(typeof(LengthValidator), typeof(CustomerValidationCollector2)); _validatorRegistration5 = new ValidatorRegistration(typeof(NotEqualValidator), typeof(CustomerValidationCollector2)); _validatorRegistration6 = new ValidatorRegistration(typeof(LengthValidator), null); _removingPropertyRuleStub1 = MockRepository.GenerateStub <IRemovingComponentPropertyRule>(); _removingPropertyRuleStub1.Stub(stub => stub.Property).Return(PropertyInfoAdapter.Create(typeof(Customer).GetProperty("LastName"))); _removingPropertyRuleStub2 = MockRepository.GenerateStub <IRemovingComponentPropertyRule>(); _removingPropertyRuleStub2.Stub(stub => stub.Property).Return(PropertyInfoAdapter.Create(typeof(Customer).GetProperty("FirstName"))); _registrationWithContext1 = new ValidatorRegistrationWithContext(_validatorRegistration1, _removingPropertyRuleStub1); _registrationWithContext2 = new ValidatorRegistrationWithContext(_validatorRegistration2, _removingPropertyRuleStub1); _registrationWithContext3 = new ValidatorRegistrationWithContext(_validatorRegistration3, _removingPropertyRuleStub1); _registrationWithContext4 = new ValidatorRegistrationWithContext(_validatorRegistration4, _removingPropertyRuleStub1); _registrationWithContext5 = new ValidatorRegistrationWithContext(_validatorRegistration5, _removingPropertyRuleStub1); _registrationWithContext6 = new ValidatorRegistrationWithContext(_validatorRegistration1, _removingPropertyRuleStub1); _registrationWithContext7 = new ValidatorRegistrationWithContext(_validatorRegistration6, _removingPropertyRuleStub2); //other property -> filtered! _stubPropertyValidator1 = new StubPropertyValidator(); //not extracted _stubPropertyValidator2 = new NotEmptyValidator(null); //extracted _stubPropertyValidator3 = new NotEqualValidator("gfsf"); //extracted _stubPropertyValidator4 = new LengthValidator(0, 10); //not extracted _logContextMock = MockRepository.GenerateStrictMock <ILogContext>(); _extractor = new PropertyValidatorExtractor( new[] { _registrationWithContext1, _registrationWithContext2, _registrationWithContext3, _registrationWithContext4, _registrationWithContext5, _registrationWithContext6, _registrationWithContext7 }, _logContextMock); }
public void Merge_WithValidationCollectors() { var collector1 = new TypeWithoutBaseTypeCollector1(); var collector2 = new TypeWithoutBaseTypeCollector2(); var validationCollectorInfos = new[] { new[] { new ValidationCollectorInfo( collector1, typeof(ValidationAttributesBasedCollectorProvider)) }, new[] { new ValidationCollectorInfo(collector2, typeof(ApiBasedComponentValidationCollectorProvider)) } }; var userNameExpression = ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.UserName); var lastNameExpression = ExpressionHelper.GetTypedMemberExpression <Customer, string> (c => c.LastName); var stubValidator1 = new NotNullValidator(); var stubValidator2 = new NotEmptyValidator(null); var stubValidator3 = new NotEqualValidator("test"); var stubValidator4 = new StubPropertyValidator(); _validatorFormatterStub.Stub( stub => stub.Format(Arg <IPropertyValidator> .Matches(c => c.GetType() == typeof(NotNullValidator)), Arg <Func <Type, string> > .Is.Anything)) .Return("FluentValidation.Validators.NotNullValidator"); _validatorFormatterStub.Stub( stub => stub.Format(Arg <IPropertyValidator> .Matches(c => c.GetType() == typeof(LengthValidator)), Arg <Func <Type, string> > .Is.Anything)) .Return("FluentValidation.Validators.LengthValidator"); _validatorFormatterStub.Stub( stub => stub.Format(Arg <IPropertyValidator> .Matches(c => c.GetType() == typeof(NotEmptyValidator)), Arg <Func <Type, string> > .Is.Anything)) .Return("FluentValidation.Validators.NotEmptyValidator"); _validatorFormatterStub.Stub( stub => stub.Format(Arg <IPropertyValidator> .Matches(c => c.GetType() == typeof(NotEqualValidator)), Arg <Func <Type, string> > .Is.Anything)) .Return("FluentValidation.Validators.NotEqualValidator"); _validatorFormatterStub.Stub( stub => stub.Format(Arg <IPropertyValidator> .Matches(c => c.GetType() == typeof(StubPropertyValidator)), Arg <Func <Type, string> > .Is.Anything)) .Return("Remotion.Validation.UnitTests.TestHelpers.StubPropertyValidator"); var userNamePropertyRule = PropertyRule.Create(userNameExpression); userNamePropertyRule.AddValidator(stubValidator1); userNamePropertyRule.AddValidator(stubValidator1); userNamePropertyRule.AddValidator(stubValidator2); var lastNamePropertyRule = PropertyRule.Create(lastNameExpression); lastNamePropertyRule.AddValidator(stubValidator3); var noPropertyRuleStub = new ValidationRuleStub(); noPropertyRuleStub.AddValidator(stubValidator4); var removingPropertyRuleStub1 = MockRepository.GenerateStub <IRemovingComponentPropertyRule>(); removingPropertyRuleStub1.Stub(stub => stub.CollectorType).Return(typeof(CustomerValidationCollector1)); var removingPropertyRuleStub2 = MockRepository.GenerateStub <IRemovingComponentPropertyRule>(); removingPropertyRuleStub2.Stub(stub => stub.CollectorType).Return(typeof(CustomerValidationCollector2)); var logContextInfo1 = new LogContextInfo( stubValidator2, new[] { new ValidatorRegistrationWithContext(new ValidatorRegistration(typeof(NotEmptyValidator), null), removingPropertyRuleStub1), new ValidatorRegistrationWithContext(new ValidatorRegistration(typeof(NotEmptyValidator), null), removingPropertyRuleStub1), new ValidatorRegistrationWithContext(new ValidatorRegistration(typeof(NotEmptyValidator), null), removingPropertyRuleStub2) }); var logContextInfo2 = new LogContextInfo( stubValidator1, new[] { new ValidatorRegistrationWithContext(new ValidatorRegistration(typeof(NotNullValidator), null), removingPropertyRuleStub2) }); var logContextInfo3 = new LogContextInfo( stubValidator3, new[] { new ValidatorRegistrationWithContext(new ValidatorRegistration(typeof(NotEqualValidator), null), removingPropertyRuleStub1) }); _logContextStub.Stub(stub => stub.GetLogContextInfos(userNamePropertyRule)).Return(new[] { logContextInfo1, logContextInfo2 }); _logContextStub.Stub(stub => stub.GetLogContextInfos(lastNamePropertyRule)).Return(new[] { logContextInfo3 }); _logContextStub.Stub(stub => stub.GetLogContextInfos(noPropertyRuleStub)).Return(new LogContextInfo[0]); var fakeValidationRules = new IValidationRule[] { userNamePropertyRule, lastNamePropertyRule, noPropertyRuleStub }; _wrappedMergerStub.Stub( stub => stub.Merge( validationCollectorInfos)).Return(new ValidationCollectorMergeResult(fakeValidationRules, _logContextStub)); var expectedAfterMerge = "\r\nAFTER MERGE:" + "\r\n\r\n -> Remotion.Validation.UnitTests.TestDomain.Customer#UserName" + "\r\n VALIDATORS:" + "\r\n -> FluentValidation.Validators.NotNullValidator (x2)" + "\r\n -> FluentValidation.Validators.NotEmptyValidator (x1)" + "\r\n MERGE LOG:" + "\r\n -> 'FluentValidation.Validators.NotEmptyValidator' was removed from collectors 'CustomerValidationCollector1, CustomerValidationCollector2'" + "\r\n -> 'FluentValidation.Validators.NotNullValidator' was removed from collector 'CustomerValidationCollector2'" + "\r\n\r\n -> Remotion.Validation.UnitTests.TestDomain.Person#LastName" + "\r\n VALIDATORS:" + "\r\n -> FluentValidation.Validators.NotEqualValidator (x1)" + "\r\n MERGE LOG:" + "\r\n -> 'FluentValidation.Validators.NotEqualValidator' was removed from collector 'CustomerValidationCollector1'" + "\r\n\r\n -> Remotion.Validation.UnitTests.Implementation.ValidationRuleStub" + "\r\n VALIDATORS:" + "\r\n -> Remotion.Validation.UnitTests.TestHelpers.StubPropertyValidator (x1)"; CheckLoggingMethod(() => _diagnosticOutputRuleMergeDecorator.Merge(validationCollectorInfos), expectedAfterMerge, 0); var expectedBeforeMerge = "\r\nBEFORE MERGE:" + "\r\n\r\n-> Remotion.Validation.Providers.ValidationAttributesBasedCollectorProvider#Remotion.Validation.UnitTests.Implementation.TestDomain.TypeWithoutBaseTypeCollector1" + "\r\n\r\n -> Remotion.Validation.UnitTests.Implementation.TestDomain.TypeWithoutBaseType#Property1" + "\r\n ADDED HARD CONSTRAINT VALIDATORS:" + "\r\n -> FluentValidation.Validators.NotNullValidator (x1)" + "\r\n -> FluentValidation.Validators.NotEqualValidator (x1)" + "\r\n\r\n -> Remotion.Validation.UnitTests.Implementation.TestDomain.TypeWithoutBaseType#Property2" + "\r\n ADDED SOFT CONSTRAINT VALIDATORS:" + "\r\n -> FluentValidation.Validators.LengthValidator (x1)" + "\r\n ADDED META VALIDATION RULES:" + "\r\n -> Remotion.Validation.UnitTests.TestDomain.ValidationRules.MaxLengthMetaValidationRule" + "\r\n\r\n-> Remotion.Validation.Providers.ApiBasedComponentValidationCollectorProvider#Remotion.Validation.UnitTests.Implementation.TestDomain.TypeWithoutBaseTypeCollector2" + "\r\n\r\n -> Remotion.Validation.UnitTests.Implementation.TestDomain.TypeWithoutBaseType#Property2" + "\r\n REMOVED VALIDATORS:" + "\r\n -> FluentValidation.Validators.NotEmptyValidator (x1)" + "\r\n -> FluentValidation.Validators.MaximumLengthValidator#Remotion.Validation.UnitTests.Implementation.TestDomain.TypeWithoutBaseTypeCollector1 (x1)"; CheckLoggingMethod(() => _diagnosticOutputRuleMergeDecorator.Merge(validationCollectorInfos), expectedBeforeMerge, 1); }
public void Should_create_notequaladapter_for_notequalvalidator() { // Given var validator = new NotEqualValidator(1); // When var result = factory.Create(this.rule, validator); // Then result.ShouldBeOfType<NotEqualAdapter>(); }