public void testBeanValidator_WithCustomValangFunctions() throws Exception { Map functionsByName = new HashMap(); functionsByName.put("tupper", UpperCaseFunction.class.getName()); ValangCondition goodCondition = new ValangCondition("tupper(name) == 'URI'", functionsByName, null); ValangCondition badCondition = new ValangCondition("tupper(name) == 'Uri'", functionsByName, null); // creating the validation configuration for the bean. DefaultBeanValidationConfiguration personValidationConfiguration = new DefaultBeanValidationConfiguration(); personValidationConfiguration.addGlobalRule(new DefaultValidationRule(goodCondition, "good")); personValidationConfiguration.addGlobalRule(new DefaultValidationRule(badCondition, "bad")); SimpleBeanValidationConfigurationLoader loader = new SimpleBeanValidationConfigurationLoader(); loader.setClassValidation(Person.class, personValidationConfiguration); BeanValidator validator = new BeanValidator(loader); validator.setErrorCodeConverter(new ModelAwareErrorCodeConverter()); validator.setConfigurationLoader(loader); Person person = new Person("Uri"); BindException errors = new BindException(person, "person"); validator.validate(person, errors); assertTrue(errors.hasGlobalErrors()); assertEquals(1, errors.getGlobalErrorCount()); assertEquals("Person[bad]", errors.getGlobalError().getCode()); }
public void testBeanValidator_WithManualConfiguration() throws Exception { // creating the validation configuration for the bean. DefaultBeanValidationConfiguration personValidationConfiguration = new DefaultBeanValidationConfiguration(); personValidationConfiguration.addGlobalRule( new DefaultValidationRule(Conditions.minLength("name", 4), "minLength")); personValidationConfiguration.addPropertyRule( "name", new DefaultValidationRule(Conditions.minLength("name", 5), "minLength")); SimpleBeanValidationConfigurationLoader loader = new SimpleBeanValidationConfigurationLoader(); loader.setClassValidation(Person.class, personValidationConfiguration); BeanValidator validator = new BeanValidator(); validator.setErrorCodeConverter(new ModelAwareErrorCodeConverter()); validator.setConfigurationLoader(loader); Person person = new Person("Uri"); BindException errors = new BindException(person, "person"); validator.validate(person, errors); assertTrue(errors.hasFieldErrors("name")); assertTrue(errors.hasGlobalErrors()); assertEquals(1, errors.getFieldErrorCount("name")); assertEquals(1, errors.getGlobalErrorCount()); assertEquals("Person[minLength]", errors.getGlobalError().getCode()); assertEquals("Person.name[minLength]", errors.getFieldError("name").getCode()); }