public PropertyComparisonValidatorOperation(string keyToValidate, string targetKey, string resultKey, string comparisonOperator, bool negated) : base(keyToValidate, resultKey) { ValidateRow = true; var valueAccess = new RowValueAccess(targetKey); var comparison = (ComparisonOperator)Enum.Parse(typeof(ComparisonOperator), comparisonOperator, true); Validator = new PropertyComparisonValidator(valueAccess, comparison, negated) { MessageTemplate = string.Empty, Tag = keyToValidate }; }
public void CreateValidatorWithInvalidPropertyThrows() { PropertyComparisonValidatorData rwValidatorData = new PropertyComparisonValidatorData("validator1"); rwValidatorData.PropertyToCompare = "Property"; PropertyComparisonValidator validator = ((IValidatorDescriptor)rwValidatorData).CreateValidator(typeof(string), typeof(PropertyComparisonValidatorDataFixtureTestClass), new ReflectionMemberValueAccessBuilder()) as PropertyComparisonValidator; Assert.IsNotNull(validator); Assert.AreEqual("PublicProperty", ((PropertyValueAccess)validator.ValueAccess).PropertyInfo.Name); Assert.AreEqual(ComparisonOperator.NotEqual, validator.ComparisonOperator); Assert.AreEqual(true, validator.Negated); }
public void CreatesAppropriateValidator() { MemberValueAccessBuilder builder = new ReflectionMemberValueAccessBuilder(); PropertyComparisonValidatorAttribute validatorAttribute = new PropertyComparisonValidatorAttribute("PublicProperty", ComparisonOperator.NotEqual); validatorAttribute.Negated = true; PropertyComparisonValidator validator = ((IValidatorDescriptor)validatorAttribute).CreateValidator(typeof(PropertyComparisonValidatorAttributeFixtureTestClass), typeof(PropertyComparisonValidatorAttributeFixtureTestClass), builder) as PropertyComparisonValidator; Assert.IsNotNull(validator); Assert.AreEqual("PublicProperty", ((PropertyValueAccess)validator.ValueAccess).PropertyInfo.Name); Assert.AreEqual(ComparisonOperator.NotEqual, validator.ComparisonOperator); Assert.AreEqual(true, validator.Negated); }