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;
		}
示例#3
0
        /// <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;
        }