@Override public int getFieldErrorCount() { return this.source.getFieldErrorCount(); }
@Override public int getFieldErrorCount(String field) { return this.source.getFieldErrorCount(field); }
@Override public int getFieldErrorCount() { return this.source.getFieldErrorCount(); }
@Override public int getFieldErrorCount(String field) { return this.source.getFieldErrorCount(field); }
assertTrue("Correct number of field errors", errors.getFieldErrorCount() == 3); assertTrue("Correct number of field errors in list", errors.getFieldErrors().size() == 3); FieldError fieldError = errors.getFieldError(); assertTrue("Correct number of name errors", errors.getFieldErrorCount("name") == 1); assertTrue("Correct number of name errors in list", errors.getFieldErrors("name").size() == 1); FieldError nameError = errors.getFieldError("name"); assertTrue("Correct number of age errors", errors.getFieldErrorCount("age") == 2); assertTrue("Correct number of age errors in list", errors.getFieldErrors("age").size() == 2); FieldError ageError = errors.getFieldError("age");
@Test public void testValidatorWithNestedObjectNull() { TestBean tb = new TestBean(); Errors errors = new BeanPropertyBindingResult(tb, "tb"); Validator testValidator = new TestBeanValidator(); testValidator.validate(tb, errors); errors.setNestedPath("spouse."); assertEquals("spouse.", errors.getNestedPath()); Validator spouseValidator = new SpouseValidator(); spouseValidator.validate(tb.getSpouse(), errors); errors.setNestedPath(""); assertTrue(errors.hasFieldErrors("spouse")); assertEquals(1, errors.getFieldErrorCount("spouse")); assertEquals("SPOUSE_NOT_AVAILABLE", errors.getFieldError("spouse").getCode()); assertEquals("tb", (errors.getFieldErrors("spouse").get(0)).getObjectName()); assertEquals(null, (errors.getFieldErrors("spouse").get(0)).getRejectedValue()); }
assertEquals(4, errors.getFieldErrorCount()); assertEquals("TOO_YOUNG", errors.getFieldError().getCode()); assertEquals("TOO_YOUNG", (errors.getFieldErrors().get(0)).getCode()); assertEquals(2, errors.getFieldErrorCount("age")); assertEquals("TOO_YOUNG", errors.getFieldError("age").getCode()); assertEquals("TOO_YOUNG", (errors.getFieldErrors("age").get(0)).getCode()); assertEquals(1, errors.getFieldErrorCount("name")); assertEquals("NOT_ROD", errors.getFieldError("name").getCode()); assertEquals("NOT_ROD.tb.name", errors.getFieldError("name").getCodes()[0]); assertEquals(1, errors.getFieldErrorCount("spouse.age")); assertEquals("TOO_YOUNG", errors.getFieldError("spouse.age").getCode()); assertEquals("tb", (errors.getFieldErrors("spouse.age").get(0)).getObjectName());
errors.rejectValue("map[key1].name", "NOT_ROD", "are you sure you're not Rod?"); assertEquals(1, errors.getFieldErrorCount("array[0].name")); assertEquals("NOT_ROD", errors.getFieldError("array[0].name").getCode()); assertEquals("NOT_ROD.tb.array[0].name", errors.getFieldError("array[0].name").getCodes()[0]); assertEquals("NOT_ROD.java.lang.String", errors.getFieldError("array[0].name").getCodes()[5]); assertEquals("NOT_ROD", errors.getFieldError("array[0].name").getCodes()[6]); assertEquals(1, errors.getFieldErrorCount("map[key1].name")); assertEquals(1, errors.getFieldErrorCount("map['key1'].name")); assertEquals(1, errors.getFieldErrorCount("map[\"key1\"].name")); assertEquals("NOT_ROD", errors.getFieldError("map[key1].name").getCode()); assertEquals("NOT_ROD.tb.map[key1].name", errors.getFieldError("map[key1].name").getCodes()[0]);
@Test public void testDirectBindingToEmptyIndexedFieldWithRegisteredSpecificEditor() { IndexedTestBean tb = new IndexedTestBean(); DataBinder binder = new DataBinder(tb, "tb"); binder.registerCustomEditor(TestBean.class, "map[key0]", new PropertyEditorSupport() { @Override public void setAsText(String text) throws IllegalArgumentException { DerivedTestBean tb = new DerivedTestBean(); tb.setName("array" + text); setValue(tb); } @Override public String getAsText() { return ((TestBean) getValue()).getName(); } }); Errors errors = binder.getBindingResult(); errors.rejectValue("map[key0]", "NOT_NULL", "should not be null"); assertEquals(1, errors.getFieldErrorCount("map[key0]")); assertEquals("NOT_NULL", errors.getFieldError("map[key0]").getCode()); assertEquals("NOT_NULL.tb.map[key0]", errors.getFieldError("map[key0]").getCodes()[0]); assertEquals("NOT_NULL.tb.map", errors.getFieldError("map[key0]").getCodes()[1]); assertEquals("NOT_NULL.map[key0]", errors.getFieldError("map[key0]").getCodes()[2]); assertEquals("NOT_NULL.map", errors.getFieldError("map[key0]").getCodes()[3]); // This next code is only generated because of the registered editor, using the // registered type of the editor as guess for the content type of the collection. assertEquals("NOT_NULL.org.springframework.tests.sample.beans.TestBean", errors.getFieldError("map[key0]").getCodes()[4]); assertEquals("NOT_NULL", errors.getFieldError("map[key0]").getCodes()[5]); }
@Test public void testDirectBindingToEmptyIndexedFieldWithRegisteredGenericEditor() { IndexedTestBean tb = new IndexedTestBean(); DataBinder binder = new DataBinder(tb, "tb"); binder.registerCustomEditor(TestBean.class, "map", new PropertyEditorSupport() { @Override public void setAsText(String text) throws IllegalArgumentException { DerivedTestBean tb = new DerivedTestBean(); tb.setName("array" + text); setValue(tb); } @Override public String getAsText() { return ((TestBean) getValue()).getName(); } }); Errors errors = binder.getBindingResult(); errors.rejectValue("map[key0]", "NOT_NULL", "should not be null"); assertEquals(1, errors.getFieldErrorCount("map[key0]")); assertEquals("NOT_NULL", errors.getFieldError("map[key0]").getCode()); assertEquals("NOT_NULL.tb.map[key0]", errors.getFieldError("map[key0]").getCodes()[0]); assertEquals("NOT_NULL.tb.map", errors.getFieldError("map[key0]").getCodes()[1]); assertEquals("NOT_NULL.map[key0]", errors.getFieldError("map[key0]").getCodes()[2]); assertEquals("NOT_NULL.map", errors.getFieldError("map[key0]").getCodes()[3]); // This next code is only generated because of the registered editor, using the // registered type of the editor as guess for the content type of the collection. assertEquals("NOT_NULL.org.springframework.tests.sample.beans.TestBean", errors.getFieldError("map[key0]").getCodes()[4]); assertEquals("NOT_NULL", errors.getFieldError("map[key0]").getCodes()[5]); }
assertEquals(1, errors.getFieldErrorCount("array[0]")); assertEquals("NOT_ROD", errors.getFieldError("array[0]").getCode()); assertEquals("NOT_ROD.tb.array[0]", errors.getFieldError("array[0]").getCodes()[0]); assertEquals("arraya", errors.getFieldValue("array[0]")); assertEquals(1, errors.getFieldErrorCount("map[key1]")); assertEquals("NOT_ROD", errors.getFieldError("map[key1]").getCode()); assertEquals("NOT_ROD.tb.map[key1]", errors.getFieldError("map[key1]").getCodes()[0]); assertEquals("NOT_ROD", errors.getFieldError("map[key1]").getCodes()[5]); assertEquals(1, errors.getFieldErrorCount("map[key0]")); assertEquals("NOT_NULL", errors.getFieldError("map[key0]").getCode()); assertEquals("NOT_NULL.tb.map[key0]", errors.getFieldError("map[key0]").getCodes()[0]);
assertEquals(1, errors.getFieldErrorCount("array[0]")); assertEquals("NOT_ROD", errors.getFieldError("array[0]").getCode()); assertEquals("NOT_ROD.tb.array[0]", errors.getFieldError("array[0]").getCodes()[0]);
errors.rejectValue("array[0].nestedIndexedBean.list[0].name", "NOT_ROD", "are you sure you're not Rod?"); assertEquals(1, errors.getFieldErrorCount("array[0].nestedIndexedBean.list[0].name")); assertEquals("NOT_ROD", errors.getFieldError("array[0].nestedIndexedBean.list[0].name").getCode()); assertEquals("NOT_ROD.tb.array[0].nestedIndexedBean.list[0].name",
@Override public int getFieldErrorCount() { return this.source.getFieldErrorCount(); }
@Override public int getFieldErrorCount(String field) { return this.source.getFieldErrorCount(field); }
@Override public int getFieldErrorCount() { return this.source.getFieldErrorCount(); }
@Override public int getFieldErrorCount(String field) { return this.source.getFieldErrorCount(field); }
assertEquals(1, errors.getFieldErrorCount("age")); assertTrue(!errors.hasFieldErrors("name"));
/** * @see PatientIdentifierTypeValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldFailValidationIfRegExFieldLengthIsTooLong() { PatientIdentifierType type = new PatientIdentifierType(); type.setName("Martin"); type.setDescription("helps"); String invalid255charInput = "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"; type.setFormat(invalid255charInput); Errors errors = new BindException(type, "type"); new PatientIdentifierTypeValidator().validate(type, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals(1, errors.getFieldErrorCount("format")); }
/** * @see PatientIdentifierTypeValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldFailValidationIfNameFieldLengthIsTooLong() { PatientIdentifierType type = new PatientIdentifierType(); String invalid51charInput = "123456789012345678901234567890123456789012345678901"; type.setName(invalid51charInput); type.setDescription("helps"); type.setFormat("format"); Errors errors = new BindException(type, "type"); new PatientIdentifierTypeValidator().validate(type, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals(1, errors.getFieldErrorCount("name")); }