public void RetunsExpectedValuesForIValidationIntegrationProxyImplementation() { ValidationProvider validationProvider = new ValidationProvider(); validationProvider.RulesetName = "ruleset"; validationProvider.SourceTypeName = typeof(ValidatedControlItemFixtureTestClass).AssemblyQualifiedName; validationProvider.SpecificationSource = ValidationSpecificationSource.Configuration; MockControl control = new MockControl(); control.Text = "value"; control.IntControlProperty = 5; ValidatedControlItem validatedControlItem = new ValidatedControlItem(validationProvider, control); validatedControlItem.ValidatedPropertyName = "Text"; validatedControlItem.SourcePropertyName = "IntProperty"; IValidationIntegrationProxy proxy = validatedControlItem; Assert.AreSame(typeof(ValidatedControlItemFixtureTestClass), proxy.ValidatedType); Assert.AreEqual("IntProperty", proxy.ValidatedPropertyName); Assert.AreEqual(ValidationSpecificationSource.Configuration, proxy.SpecificationSource); Assert.AreEqual("ruleset", proxy.Ruleset); Assert.AreSame(typeof(PropertyMappedControlValueAccessBuilder), proxy.GetMemberValueAccessBuilder().GetType()); }
/// <summary> /// Initializes a new instance of the <see cref="ValidationIntegrationHelper"/> for an <see cref="IValidationIntegrationProxy"/>. /// </summary> /// <exception cref="ArgumentNullException">when <paramref name="integrationProxy"/> is <see langword="null"/>.</exception> /// <exception cref="InvalidOperationException">when configuration is not complete.</exception> public ValidationIntegrationHelper(IValidationIntegrationProxy integrationProxy) { if (integrationProxy == null) { throw new ArgumentNullException("integrationProxy"); } validatedType = integrationProxy.ValidatedType; if (validatedType == null) { throw new InvalidOperationException(Resources.ExceptionIntegrationValidatedTypeNotAvailable); } string validatedPropertyName = integrationProxy.ValidatedPropertyName; if (string.IsNullOrEmpty(validatedPropertyName)) { throw new InvalidOperationException(Resources.ExceptionIntegrationValidatedPropertyNameNotAvailable); } this.validatedProperty = validatedType.GetProperty(validatedPropertyName, BindingFlags.Public | BindingFlags.Instance); if (this.validatedProperty == null) { throw new InvalidOperationException(Resources.ExceptionIntegrationValidatedPropertyNotExists); } if (!this.validatedProperty.CanRead) { throw new InvalidOperationException(Resources.ExceptionIntegrationValidatedPropertyNotReadable); } this.integrationProxy = integrationProxy; }