person.setNullableInteger(new Integer(3));
AnnotationBeanValidationConfigurationLoader loader = new AnnotationBeanValidationConfigurationLoader();
BeanValidator validator = new BeanValidator(loader);
BindException errors = new BindException(person, "person");
validator.validate(person, errors);
assertTrue(errors.hasGlobalErrors());
assertEquals(2, errors.getGlobalErrorCount());
assertTrue(errors.hasFieldErrors());
assertTrue(errors.hasFieldErrors("firstName"));
assertTrue(errors.hasFieldErrors("lastName"));
assertFalse(errors.hasFieldErrors("birthday"));
assertEquals(1, errors.getFieldErrorCount("age"));
assertEquals("Person.age[just.another.error.code]", errors.getFieldError("age").getCode());
assertTrue(errors.hasFieldErrors("father"));
assertTrue(errors.hasFieldErrors("mother.*"));
assertTrue(errors.hasFieldErrors("friends"));
assertTrue(errors.hasFieldErrors("address.street"));
assertFalse(errors.hasFieldErrors("nullableString"));
assertTrue(errors.hasFieldErrors("nullableInteger"));
assertEquals("Address.street[not.null]", errors.getFieldError("address.street").getCode());
}