public void ConverterTest() { ValidationErrorsConverter converter = ValidationErrorsConverter.Default; Assert.AreEqual(converter, ValidationErrorsConverter.Default); AssertHelper.ExpectedException <NotSupportedException>(() => converter.ConvertBack(null, (Type[])null, null, null)); Assert.AreEqual(DependencyProperty.UnsetValue, converter.Convert((object[])null, null, null, null)); Assert.AreEqual(DependencyProperty.UnsetValue, converter.Convert(new[] { "WrongType" }, null, null, null)); List <ValidationError> validationErrors = new List <ValidationError>(); Assert.AreEqual("", converter.Convert(new[] { validationErrors }, null, null, null)); ExceptionValidationRule rule = new ExceptionValidationRule(); validationErrors.Add(new ValidationError(rule, new object(), "First error message", null)); Assert.AreEqual("First error message", converter.Convert(new[] { validationErrors }, null, null, null)); validationErrors.Add(new ValidationError(rule, new object(), "Second error message", null)); Assert.AreEqual("First error message" + Environment.NewLine + "Second error message", converter.Convert(new[] { validationErrors }, null, null, null)); }
/// <summary> /// This method is being invoked during initialization. /// </summary> /// <param name="provider">Provides access to the bound items.</param> /// <returns>The binding expression that is created by /// the base class.</returns> public override object ProvideValue(IServiceProvider provider) { ValidationRule rule; switch (Rule) { case CustomRule.DirectoryMustExists: rule = new DirectoryMustExistsRule(false); break; case CustomRule.EmptyOrDirectoryMustExists: rule = new DirectoryMustExistsRule(true); break; default: rule = new ExceptionValidationRule(); break; } Binding.ValidationRules.Add(rule); return(base.ProvideValue(provider)); }