package org.springmodules.validation.commons;
import java.util.Locale;
import junit.framework.TestCase;
import org.apache.commons.validator.Validator;
import org.apache.commons.validator.ValidatorResources;
import org.easymock.MockControl;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
/**
* @author robh
*/
public class DefaultBeanValidatorTests extends TestCase {
public void testSupports() {
DefaultBeanValidator validator = getValidator();
assertTrue(validator.supports(FooBean.class));
assertFalse(validator.supports(String.class));
}
public void testSupportsWithFullyQualifiedName() {
DefaultBeanValidator validator = getValidator();
validator.setUseFullyQualifiedClassName(true);
assertTrue(validator.supports(FooBarBean.class));
assertFalse(validator.supports(String.class));
}
public void testGetLocale() {
DefaultBeanValidator validator = getValidator();
assertEquals(validator.getLocale(), Locale.getDefault());
}
public void testValidate() {
FooBean bean = new FooBean();
MockControl ctl = MockControl.createControl(ValidatorFactory.class);
ValidatorFactory factory = (ValidatorFactory) ctl.getMock();
// expect call to get validator with args "fooBean", bean and null
factory.getValidator("fooBean", bean, null);
ctl.setReturnValue(getCommonsValidator());
ctl.replay();
DefaultBeanValidator validator = new DefaultBeanValidator();
validator.setValidatorFactory(factory);
validator.validate(bean, null);
ctl.verify();
}
private DefaultBeanValidator getValidator() {
DefaultBeanValidator validator = new DefaultBeanValidator();
DefaultValidatorFactory factory = new DefaultValidatorFactory();
factory.setValidationConfigLocations(new Resource[]{new ClassPathResource("testValidation.xml", getClass())});
validator.setValidatorFactory(factory);
return validator;
}
private Validator getCommonsValidator() {
ValidatorResources res = new ValidatorResources();
res.process();
return new Validator(res);
}
}