public void CanValidateThroughValueAccessValidatorUsingValueAccess() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(PropertyMappedControlValueAccessFixtureTestClass).AssemblyQualifiedName; MockControl control = new MockControl(); control.Text = "control text"; validationProvider.SetSourcePropertyName(control, "StringProperty"); MockValidator valueValidator = new MockValidator(true, "message"); Validator validator = new ValueAccessValidator(new PropertyMappedControlValueAccess("StringProperty"), valueValidator); ValidationResults validationResults = validator.Validate(validationProvider.GetExistingValidatedControlItem(control)); Assert.IsFalse(validationResults.IsValid); IList <ValidationResult> resultsList = ValidationTestHelper.GetResultsList(validationResults); Assert.AreEqual(1, resultsList.Count); Assert.AreEqual("StringProperty", resultsList[0].Key); Assert.AreEqual("message", resultsList[0].Message); Assert.AreEqual(null, resultsList[0].Tag); Assert.AreSame(validationProvider.GetExistingValidatedControlItem(control), resultsList[0].Target); Assert.AreSame(valueValidator, resultsList[0].Validator); Assert.AreEqual("control text", valueValidator.ValidatedTargets[0]); }
public void GettingValueForNonMappedPropertyThrows() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(PropertyMappedControlValueAccessFixtureTestClass).AssemblyQualifiedName; MockControl control = new MockControl(); control.Text = "control text"; validationProvider.SetSourcePropertyName(control, "StringProperty"); PropertyMappedControlValueAccess valueAccess = new PropertyMappedControlValueAccess("NonMappedProperty"); object value; string valueAccessFailureMessage; bool status = valueAccess.GetValue(validationProvider.GetExistingValidatedControlItem(control), out value, out valueAccessFailureMessage); }
public void ValueConversionIsPerformedWhenRequestingValueFromValueAccess() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(PropertyMappedControlValueAccessFixtureTestClass).AssemblyQualifiedName; validationProvider.ValueConvert += this.OnValueConvert; MockControl control = new MockControl(); control.Text = "control text"; validationProvider.SetSourcePropertyName(control, "StringProperty"); PropertyMappedControlValueAccess valueAccess = new PropertyMappedControlValueAccess("StringProperty"); object value; string valueAccessFailureMessage; bool status = valueAccess.GetValue(validationProvider.GetExistingValidatedControlItem(control), out value, out valueAccessFailureMessage); Assert.AreEqual("converted control text", value); Assert.AreEqual("control text", this.valueToConvert); }
public void GetsValueFromOtherRegisteredControl() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(PropertyMappedControlValueAccessFixtureTestClass).AssemblyQualifiedName; MockControl control1 = new MockControl(); control1.Text = "control1 text"; validationProvider.SetSourcePropertyName(control1, "StringProperty"); MockControl control2 = new MockControl(); control2.Text = "control2 text"; validationProvider.SetSourcePropertyName(control2, "ExtraStringProperty"); PropertyMappedControlValueAccess valueAccess = new PropertyMappedControlValueAccess("ExtraStringProperty"); object value; string valueAccessFailureMessage; bool status = valueAccess.GetValue(validationProvider.GetExistingValidatedControlItem(control1), out value, out valueAccessFailureMessage); Assert.AreEqual("control2 text", value); }
public void ValidationIsClearedForControlWhenControlPropertyIsSetAndErrorIsCleared() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(ValidationProviderFixtureTestClass).AssemblyQualifiedName; MockControl control1 = new MockControl(); validationProvider.SetSourcePropertyName(control1, "StringProperty"); ValidatedControlItem controlItem1 = validationProvider.GetExistingValidatedControlItem(control1); MockControl control2 = new MockControl(); validationProvider.SetSourcePropertyName(control2, "StringProperty"); ValidatedControlItem controlItem2 = validationProvider.GetExistingValidatedControlItem(control2); ErrorProvider errorProvider = new ErrorProvider(); validationProvider.ErrorProvider = errorProvider; control1.Text = "000000000001"; control2.Text = "000000000001"; validationProvider.PerformValidation(control1); validationProvider.PerformValidation(control2); Assert.IsFalse(validationProvider.IsValid); Assert.IsFalse(controlItem1.IsValid); Assert.IsFalse(controlItem2.IsValid); Assert.AreEqual("string property", errorProvider.GetError(control1)); Assert.AreEqual("string property", errorProvider.GetError(control2)); validationProvider.ValidationPerformed += OnValidationPerformed; validationProvider.SetSourcePropertyName(control2, "IntProperty"); Assert.IsFalse(validationProvider.IsValid); Assert.IsFalse(controlItem1.IsValid); Assert.IsTrue(controlItem2.IsValid); Assert.AreEqual("string property", errorProvider.GetError(control1)); Assert.AreEqual(string.Empty, errorProvider.GetError(control2)); Assert.IsNull(validationPerformedEventArgs); validationProvider.PerformValidation(control2); Assert.IsFalse(validationProvider.IsValid); Assert.IsFalse(controlItem1.IsValid); Assert.IsFalse(controlItem2.IsValid); Assert.AreEqual("string property", errorProvider.GetError(control1)); Assert.AreEqual("int property", errorProvider.GetError(control2)); Assert.IsNotNull(validationPerformedEventArgs); }
public void CanPerformCrossFieldValidation() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(ValidationProviderFixtureTestClass).AssemblyQualifiedName; validationProvider.RulesetName = "cross field"; MockControl control1 = new MockControl(); validationProvider.SetSourcePropertyName(control1, "StringProperty"); MockControl control2 = new MockControl(); validationProvider.SetSourcePropertyName(control2, "ExtraStringProperty"); ValidatedControlItem validatedControlItem1 = validationProvider.GetExistingValidatedControlItem(control1); Validator validator = validatedControlItem1.Validator; control1.Text = "aaaaaa"; control2.Text = "aaaabb"; Assert.IsFalse(validator.Validate(validatedControlItem1).IsValid); control2.Text = "aaaaaa"; Assert.IsTrue(validator.Validate(validatedControlItem1).IsValid); }
public void RequestForExistingValidatedControlItemForNonMappedPropertyNameReturnsNull() { ValidationProvider validationProvider = new ValidationProvider(); MockControl control1 = new MockControl(); validationProvider.SetSourcePropertyName(control1, "StringProperty"); MockControl control2 = new MockControl(); validationProvider.SetSourcePropertyName(control2, "IntProperty"); Assert.IsNull(validationProvider.GetExistingValidatedControlItem("NonMappedProperty")); }
public void ValueConversionIsPerformedWhenRequestingValueFromValueAccess() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(PropertyMappedControlValueAccessFixtureTestClass).AssemblyQualifiedName; validationProvider.ValueConvert += OnValueConvert; MockControl control = new MockControl(); control.Text = "control text"; validationProvider.SetSourcePropertyName(control, "StringProperty"); PropertyMappedControlValueAccess valueAccess = new PropertyMappedControlValueAccess("StringProperty"); object value; string valueAccessFailureMessage; bool status = valueAccess.GetValue(validationProvider.GetExistingValidatedControlItem(control), out value, out valueAccessFailureMessage); Assert.AreEqual("converted control text", value); Assert.AreEqual("control text", valueToConvert); }
public void CanValidateThroughValueAccessValidatorUsingValueAccess() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(PropertyMappedControlValueAccessFixtureTestClass).AssemblyQualifiedName; MockControl control = new MockControl(); control.Text = "control text"; validationProvider.SetSourcePropertyName(control, "StringProperty"); MockValidator valueValidator = new MockValidator(true, "message"); Validator validator = new ValueAccessValidator(new PropertyMappedControlValueAccess("StringProperty"), valueValidator); ValidationResults validationResults = validator.Validate(validationProvider.GetExistingValidatedControlItem(control)); Assert.IsFalse(validationResults.IsValid); IList<ValidationResult> resultsList = ValidationTestHelper.GetResultsList(validationResults); Assert.AreEqual(1, resultsList.Count); Assert.AreEqual("StringProperty", resultsList[0].Key); Assert.AreEqual("message", resultsList[0].Message); Assert.AreEqual(null, resultsList[0].Tag); Assert.AreSame(validationProvider.GetExistingValidatedControlItem(control), resultsList[0].Target); Assert.AreSame(valueValidator, resultsList[0].Validator); Assert.AreEqual("control text", valueValidator.ValidatedTargets[0]); }