package org.springmodules.validation.bean.conf.namespace;
import junit.framework.TestCase;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.validation.BindException;
import org.springmodules.validation.bean.BeanValidator;
import org.apache.commons.lang.ArrayUtils;
/**
* Tests for {@link org.springmodules.validation.bean.conf.loader.xml.DefaultXmlBeanValidationConfigurationLoader}.
*
* @author Uri Boness
*/
public class NamespaceAnnotationConfigurationIntegrationTests extends TestCase {
private BeanValidator validator;
private BeanValidator validator2;
protected void setUp() throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("annotation-validation.xml", getClass());
validator = (BeanValidator) context.getBean("validator");
validator2 = (BeanValidator) context.getBean("validator2");
}
public void testLoadConfiguration() throws Exception {
AnnotatedPerson person = new AnnotatedPerson();
person.setFirstName("Uri");
person.setLastName("Boness");
person.setAge(-1);
person.setEmail("uri@b");
person.setPassword("pa");
person.setConfirmPassword("pa1");
BindException errors = new BindException(person, "person");
validator.validate(person, errors);
assertEquals(1, errors.getGlobalErrorCount());
assertEquals(3, errors.getFieldErrorCount());
}
public void testLoadConfiguration_WithCustomHandlerFailure() throws Exception {
AnnotatedPerson person = new AnnotatedPerson();
person.setFirstName("Uri");
person.setLastName("boness");
person.setAge(-1);
person.setEmail("uri@b");
person.setPassword("pa");
person.setConfirmPassword("pa1");
BindException errors = new BindException(person, "person");
validator.validate(person, errors);
assertEquals(1, errors.getGlobalErrorCount());
// testing the test error code converter
String[] codes = errors.getGlobalError().getCodes();
assertTrue(ArrayUtils.contains(codes, "test.passwords.do.not.match"));
assertEquals(4, errors.getFieldErrorCount());
}
public void testLoadConfiguration_2() throws Exception {
AnnotatedPerson person = new AnnotatedPerson();
person.setFirstName("Uri");
person.setLastName("boness");
person.setAge(-1);
person.setEmail("uri@b");
person.setPassword("pa");
person.setConfirmPassword("pa1");
BindException errors = new BindException(person, "person");
validator2.validate(person, errors);
assertEquals(1, errors.getGlobalErrorCount());
// testing the test error code converter
String[] codes = errors.getGlobalError().getCodes();
assertTrue(ArrayUtils.contains(codes, "test.passwords.do.not.match"));
assertEquals(4, errors.getFieldErrorCount());
}
}