@SuppressWarnings("unchecked") @Test public void missing_field_validator_constraint() throws Exception { Validator validator = mockValidator(); TypeCoercer coercer = mockTypeCoercer(); FieldComponent field = newFieldComponent(); ComponentResources resources = mockComponentResources(); Messages containerMessages = mockMessages(); FormSupport fs = mockFormSupport(); Map<String, Validator> map = singletonMap("minlength", validator); train_getConstraintType(validator, Integer.class); train_getFormValidationId(fs, "myform"); train_getComponentResources(field, resources); train_getId(resources, "fred"); train_getContainerMessages(resources, containerMessages); train_contains(containerMessages, "myform-fred-minlength", false); train_contains(containerMessages, "fred-minlength", false); ValidatorMacro macro = mockValidatorMacro(); train_alwaysNull(macro); replay(); FieldValidatorSource source = new FieldValidatorSourceImpl(null, coercer, fs, map, macro); try { source.createValidators(field, "minlength"); unreachable(); } catch (IllegalArgumentException ex) { assertEquals( ex.getMessage(), "Validator 'minlength' requires a validation constraint (of type java.lang.Integer) but none was provided. The constraint may be provided inside the @Validator annotation on the property, or in the associated component message catalog as key 'myform-fred-minlength' or key 'fred-minlength'."); } verify(); }
public FieldValidator createValidators(Field field, String specification) { List<ValidatorSpecification> specs = toValidatorSpecifications(specification); List<FieldValidator> fieldValidators = CollectionFactory.newList(); for (ValidatorSpecification spec : specs) { fieldValidators.add(createValidator(field, spec.getValidatorType(), spec.getConstraintValue())); } if (fieldValidators.size() == 1) return fieldValidators.get(0); return new CompositeFieldValidator(fieldValidators); }
FieldValidatorSourceImpl implements FieldValidatorSource { public FieldValidator createValidators(Field field, String specification) { List<ValidatorSpecification> specs = toValidatorSpecifications(specification); List<FieldValidator> fieldValidators = CollectionFactory.newList(); for (ValidatorSpecification spec : specs) { fieldValidators.add(createValidator(field, spec.getValidatorType(), spec.getConstraintValue())); } if (fieldValidators.size() == 1) return fieldValidators.get(0); return new CompositeFieldValidator(fieldValidators); } }
FieldValidatorSourceImpl implements FieldValidatorSource { public FieldValidator createValidators(Field field, String specification) { List<ValidatorSpecification> specs = toValidatorSpecifications(specification); List<FieldValidator> fieldValidators = CollectionFactory.newList(); for (ValidatorSpecification spec : specs) { fieldValidators.add(createValidator(field, spec.getValidatorType(), spec.getConstraintValue())); } if (fieldValidators.size() == 1) return fieldValidators.get(0); return new CompositeFieldValidator(fieldValidators); } FieldValidatorSourceImpl(Messages globalMessages, TypeCoercer typeCoercer,
                                    FormSupport formSupport, Map<String, Validator> validators, ValidatorMacro validatorMacro); }
FieldValidatorSourceImpl implements FieldValidatorSource { public FieldValidator createValidators(Field field, String specification) { List<ValidatorSpecification> specs = toValidatorSpecifications(specification); List<FieldValidator> fieldValidators = CollectionFactory.newList(); for (ValidatorSpecification spec : specs) { fieldValidators.add(createValidator(field, spec.getValidatorType(), spec.getConstraintValue())); } if (fieldValidators.size() == 1) return fieldValidators.get(0); return new CompositeFieldValidator(fieldValidators); } FieldValidatorSourceImpl(Messages globalMessages, TypeCoercer typeCoercer,
                                    FormSupport formSupport, Map<String, Validator> validators, ValidatorMacro validatorMacro); FieldValidator createValidator(Field field, String validatorType, String constraintValue); FieldValidator createValidator(Field field, String validatorType, String constraintValue, String overrideId,
                                          Messages overrideMessages, Locale locale); FieldValidator createValidators(Field field, String specification); }
FieldValidatorSourceImpl implements FieldValidatorSource { public FieldValidator createValidators(Field field, String specification) { List<ValidatorSpecification> specs = toValidatorSpecifications(specification); List<FieldValidator> fieldValidators = CollectionFactory.newList(); for (ValidatorSpecification spec : specs) { fieldValidators.add(createValidator(field, spec.getValidatorType(), spec.getConstraintValue())); } if (fieldValidators.size() == 1) return fieldValidators.get(0); return new CompositeFieldValidator(fieldValidators); } FieldValidatorSourceImpl(Messages globalMessages, TypeCoercer typeCoercer,
                                    FormSupport formSupport, Map<String, Validator> validators, ValidatorMacro validatorMacro); FieldValidator createValidator(Field field, String validatorType, String constraintValue); FieldValidator createValidator(Field field, String validatorType, String constraintValue, String overrideId,
                                          Messages overrideMessages, Locale locale); FieldValidator createValidators(Field field, String specification);  }