public void ForObject_WorksWithAllCommonCasing() { ValidationErrors nestedErrors = new ValidationErrors(); ValidationErrors errors = new ValidationErrors(); errors.AddErrors("credit-card", nestedErrors); Assert.AreEqual(nestedErrors, errors.ForObject("credit-card")); Assert.AreEqual(nestedErrors, errors.ForObject("credit_card")); Assert.AreEqual(nestedErrors, errors.ForObject("creditCard")); Assert.AreEqual(nestedErrors, errors.ForObject("CreditCard")); }
public void ForObject_WithNestedErrors() { ValidationErrors addressErrors = new ValidationErrors(); addressErrors.AddError("country_name", new ValidationError("country_name", "91803", "invalid country")); ValidationErrors errors = new ValidationErrors(); errors.AddErrors("address", addressErrors); Assert.AreEqual(ValidationErrorCode.ADDRESS_COUNTRY_NAME_IS_NOT_ACCEPTED, errors.ForObject("address").OnField("country_name")[0].Code); Assert.AreEqual("invalid country", errors.ForObject("address").OnField("country_name")[0].Message); }
public void DeepCount_WithNestedErrors() { ValidationErrors addressErrors = new ValidationErrors(); addressErrors.AddError("country_name", new ValidationError("country_name", "1", "invalid country")); addressErrors.AddError("another_field", new ValidationError("another_field", "2", "another message")); ValidationErrors errors = new ValidationErrors(); errors.AddError("some_field", new ValidationError("some_field", "3", "some message")); errors.AddErrors("address", addressErrors); Assert.AreEqual(3, errors.DeepCount); Assert.AreEqual(1, errors.Count); Assert.AreEqual(2, errors.ForObject("address").DeepCount); Assert.AreEqual(2, errors.ForObject("address").Count); }
public void ByFormField_UnderscoresNodes() { var errors = new ValidationErrors(); errors.AddError("some-error", new ValidationError("some-error", "1", "some error")); errors.AddError("some-error", new ValidationError("some-error", "2", "some other error")); var nestedErrors = new ValidationErrors(); nestedErrors.AddError("some-nested-error", new ValidationError("some-nested-error", "3", "some nested error")); nestedErrors.AddError("some-nested-error", new ValidationError("some-nested-error", "4", "some other nested error")); var nestedNestedErrors = new ValidationErrors(); nestedNestedErrors.AddError("some-nested-nested-error", new ValidationError("some-nested-nested-error", "5", "some nested nested error")); nestedNestedErrors.AddError("some-nested-nested-error", new ValidationError("some-nested-nested-error", "6", "some other nested nested error")); nestedErrors.AddErrors("some-nested-object", nestedNestedErrors); errors.AddErrors("some-object", nestedErrors); Dictionary<string, List<string>> formErrors = errors.ByFormField(); Assert.AreEqual("some error", formErrors["some_error"][0]); Assert.AreEqual("some other error", formErrors["some_error"][1]); Assert.AreEqual("some nested error", formErrors["some_object[some_nested_error]"][0]); Assert.AreEqual("some other nested error", formErrors["some_object[some_nested_error]"][1]); Assert.AreEqual("some nested nested error", formErrors["some_object[some_nested_object][some_nested_nested_error]"][0]); Assert.AreEqual("some other nested nested error", formErrors["some_object[some_nested_object][some_nested_nested_error]"][1]); }
public void ByFormField_FlattensErrorsToFormElementNames() { var errors = new ValidationErrors(); errors.AddError("some_error", new ValidationError("some_error", "1", "some error")); errors.AddError("some_error", new ValidationError("some_error", "2", "some other error")); var nestedErrors = new ValidationErrors(); nestedErrors.AddError("some_nested_error", new ValidationError("some_nested_error", "3", "some nested error")); nestedErrors.AddError("some_nested_error", new ValidationError("some_nested_error", "4", "some other nested error")); var nestedNestedErrors = new ValidationErrors(); nestedNestedErrors.AddError("some_nested_nested_error", new ValidationError("some_nested_nested_error", "5", "some nested nested error")); nestedNestedErrors.AddError("some_nested_nested_error", new ValidationError("some_nested_nested_error", "6", "some other nested nested error")); nestedErrors.AddErrors("some_nested_object", nestedNestedErrors); errors.AddErrors("some_object", nestedErrors); Dictionary<String, List<String>> formErrors = errors.ByFormField(); Assert.AreEqual("some error", formErrors["some_error"][0]); Assert.AreEqual("some other error", formErrors["some_error"][1]); Assert.AreEqual("some nested error", formErrors["some_object[some_nested_error]"][0]); Assert.AreEqual("some other nested error", formErrors["some_object[some_nested_error]"][1]); Assert.AreEqual("some nested nested error", formErrors["some_object[some_nested_object][some_nested_nested_error]"][0]); Assert.AreEqual("some other nested nested error", formErrors["some_object[some_nested_object][some_nested_nested_error]"][1]); }