public void ErrorsInErrorProviderForValidatedControlsAreClearedByValidatorProviderDispose() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(ValidationProviderFixtureTestClass).AssemblyQualifiedName; validationProvider.RulesetName = "validation"; ErrorProvider errorProvider = new ErrorProvider(); validationProvider.ErrorProvider = errorProvider; MockControl controlWithoutError = new MockControl(); controlWithoutError.Text = "short"; validationProvider.SetSourcePropertyName(controlWithoutError, "StringProperty"); MockControl controlWithError = new MockControl(); controlWithError.Text = "too long"; validationProvider.SetSourcePropertyName(controlWithError, "StringProperty"); MockControl controlWithoutValidation = new MockControl(); controlWithoutValidation.Text = "too long"; validationProvider.PerformValidation(controlWithoutError); validationProvider.PerformValidation(controlWithError); errorProvider.SetError(controlWithoutValidation, "an unmanaged error"); Assert.AreEqual(string.Empty, errorProvider.GetError(controlWithoutError)); Assert.AreEqual("validation", errorProvider.GetError(controlWithError)); Assert.AreEqual("an unmanaged error", errorProvider.GetError(controlWithoutValidation)); validationProvider.Dispose(); Assert.AreEqual(string.Empty, errorProvider.GetError(controlWithoutError)); Assert.AreEqual(string.Empty, errorProvider.GetError(controlWithError)); Assert.AreEqual("an unmanaged error", errorProvider.GetError(controlWithoutValidation)); }
public void ValidationProviderUnregistersControlsOnDispose() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.SourceTypeName = typeof(ValidationProviderFixtureTestClass).AssemblyQualifiedName; validationProvider.RulesetName = "validation"; validationProvider.ValidationPerformed += OnValidationPerformed; MockControl control = new MockControl(); validationProvider.SetSourcePropertyName(control, "StringProperty"); validationProvider.SetPerformValidation(control, true); control.Text = "too long"; bool cancel = control.FireValidating(); Assert.IsTrue(cancel); Assert.IsNotNull(validationStatusOnCallback); validationStatusOnCallback = null; validationProvider.Dispose(); cancel = control.FireValidating(); Assert.IsFalse(cancel); Assert.IsNull(validationStatusOnCallback); }