package cn.org.rapid_framework.beanvalidation; import java.util.HashMap; import javax.validation.ConstraintViolationException; import javax.validation.constraints.Max; import javax.validation.constraints.NotNull; import junit.framework.TestCase; import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.NotBlank; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.validation.MapBindingResult; import org.springframework.validation.Validator; import cn.org.rapid_framework.util.holder.BeanValidatorHolder; public class ValidatorTest extends TestCase{ Validator validator = null; public void setUp() { ApplicationContext ac = new ClassPathXmlApplicationContext("fortest_beanvalidation/applicationContext-validator.xml"); validator = ac.getBean("validator",Validator.class); new BeanValidatorHolder().setValidator((javax.validation.Validator)validator); } public void tearDown() { BeanValidatorHolder.cleanHolder(); } public void test() { MapBindingResult errors = new MapBindingResult(new HashMap(), "vb"); //请打开以下的测试 validator.validate(new BeanValidationTestBean(), errors ); // assertEquals("请输入值",errors.getFieldError("age").getDefaultMessage()); // assertEquals("请输入值",errors.getFieldError("blog").getDefaultMessage()); // assertEquals("必须小于或等于 100",errors.getFieldError("height").getDefaultMessage()); // assertEquals("长度必须在 10 至 20 之间",errors.getFieldError("password").getDefaultMessage()); System.out.println(errors); } public void testBeanValidatorHoldervalidate() { try { BeanValidatorHolder.validate(new BeanValidationTestBean()); fail(); }catch(ConstraintViolationException e) { assertEquals("validate failure on object:BeanValidationTestBean",e.getMessage()); } } public void testBeanValidatorHoldervalidateProperty() { try { BeanValidatorHolder.validateProperty(new BeanValidationTestBean(),"username"); fail(); }catch(ConstraintViolationException e) { assertEquals("validate property failure on object:BeanValidationTestBean.username",e.getMessage()); } } public void testBeanValidatorHoldervalidateValue() { try { BeanValidatorHolder.validateValue(BeanValidationTestBean.class,"username"," "); fail(); }catch(ConstraintViolationException e) { assertEquals("validate value failure on object:BeanValidationTestBean.username value: ",e.getMessage()); } } public static class BeanValidationTestBean { @NotBlank private String username; @Length(min=10,max=20) private String password = "1"; @NotNull private Integer age; @NotNull private Integer sex; @NotBlank @Length(min=10,max=20) private String blog; @Max(100) private int height = 200; } }