public static ValidationResult CustomValidationMethod(ValTestClass_With_IValidatableObject instance, ValidationContext context) { bool fail = context.Items.ContainsKey(AttributeFailure) ? (bool)context.Items[AttributeFailure] : false; string message = context.Items.ContainsKey(AttributeFailureMessage) ? (string)context.Items[AttributeFailureMessage] : "CustomValidationMethod Failed"; return(fail ? new ValidationResult(message) : ValidationResult.Success); }
public void Validator_Fails_With_IValidatableObject_Errors() { ICollection <ValidationResult> injectedResults = new Collection <ValidationResult> { new ValidationResult("Error"), new ValidationResult("Another Error") }; ValTestClass_With_IValidatableObject entity = new ValTestClass_With_IValidatableObject(injectedResults); ValidationContext context = new ValidationContext(entity, null, null); ExceptionHelper.ExpectValidationException(() => { Validator.ValidateObject(entity, context); }, "Error", null, entity); }
public void Validator_Returns_Errors_From_IValidatableObject() { ICollection <ValidationResult> injectedResults = new Collection <ValidationResult> { new ValidationResult("Error") }; ValTestClass_With_IValidatableObject entity = new ValTestClass_With_IValidatableObject(injectedResults); ValidationContext context = new ValidationContext(entity, null, null); ICollection <ValidationResult> results = new Collection <ValidationResult>(); bool isValid = Validator.TryValidateObject(entity, context, results); Assert.IsFalse(isValid, "isValid should be false since the object returns validation results"); Assert.AreEqual(1, results.Count, "There should be 1 result returned"); }
public void Validator_Does_Not_Invoke_IValidatableObject_With_Entity_Attribute_Failure() { ValTestClass_With_IValidatableObject entity = new ValTestClass_With_IValidatableObject("IValidatableObject should not be called when an entity attribute validation fails"); Dictionary <object, object> items = new Dictionary <object, object>(); items.Add(ValTestClass_With_IValidatableObject.AttributeFailure, true); items.Add(ValTestClass_With_IValidatableObject.AttributeFailureMessage, "Attribute failure"); ValidationContext context = new ValidationContext(entity, null, items); ICollection <ValidationResult> results = new Collection <ValidationResult>(); bool isValid = Validator.TryValidateObject(entity, context, results); Assert.IsFalse(isValid, "isValid should be false since the object returns validation results"); Assert.AreEqual(1, results.Count, "There should be 1 result returned"); Assert.AreEqual("Attribute failure", results.First().ErrorMessage); }
public static ValidationResult CustomValidationMethod(ValTestClass_With_IValidatableObject instance, ValidationContext context) { bool fail = context.Items.ContainsKey(AttributeFailure) ? (bool)context.Items[AttributeFailure] : false; string message = context.Items.ContainsKey(AttributeFailureMessage) ? (string)context.Items[AttributeFailureMessage] : "CustomValidationMethod Failed"; return fail ? new ValidationResult(message) : ValidationResult.Success; }
public void Validator_Does_Not_Invoke_IValidatableObject_With_Entity_Attribute_Failure() { ValTestClass_With_IValidatableObject entity = new ValTestClass_With_IValidatableObject("IValidatableObject should not be called when an entity attribute validation fails"); Dictionary<object, object> items = new Dictionary<object, object>(); items.Add(ValTestClass_With_IValidatableObject.AttributeFailure, true); items.Add(ValTestClass_With_IValidatableObject.AttributeFailureMessage, "Attribute failure"); ValidationContext context = new ValidationContext(entity, null, items); ICollection<ValidationResult> results = new Collection<ValidationResult>(); bool isValid = Validator.TryValidateObject(entity, context, results); Assert.IsFalse(isValid, "isValid should be false since the object returns validation results"); Assert.AreEqual(1, results.Count, "There should be 1 result returned"); Assert.AreEqual("Attribute failure", results.First().ErrorMessage); }
public void Validator_Fails_With_IValidatableObject_Errors() { ICollection<ValidationResult> injectedResults = new Collection<ValidationResult> { new ValidationResult("Error"), new ValidationResult("Another Error") }; ValTestClass_With_IValidatableObject entity = new ValTestClass_With_IValidatableObject(injectedResults); ValidationContext context = new ValidationContext(entity, null, null); ExceptionHelper.ExpectValidationException(() => { Validator.ValidateObject(entity, context); }, "Error", null, entity); }
public void Validator_Filters_Out_Success_Results_From_IValidatableObject() { ICollection<ValidationResult> injectedResults = new Collection<ValidationResult> { new ValidationResult("Error"), ValidationResult.Success }; ValTestClass_With_IValidatableObject entity = new ValTestClass_With_IValidatableObject(injectedResults); ValidationContext context = new ValidationContext(entity, null, null); ICollection<ValidationResult> results = new Collection<ValidationResult>(); bool isValid = Validator.TryValidateObject(entity, context, results); Assert.IsFalse(isValid, "isValid should be false since the object returns validation results"); Assert.AreEqual(1, results.Count, "There should be 1 result returned since the ValidationResult.Success item should be filtered out"); }