use of org.apache.tapestry5.services.FieldValidatorSource in project tapestry-5 by apache.
the class FieldValidatorDefaultSourceImplTest method invokes_all_constraint_generators.
@SuppressWarnings("unchecked")
@Test
public void invokes_all_constraint_generators() throws Exception {
getMocksControl().checkOrder(true);
ValidationConstraintGenerator gen = mockValidationConstraintGenerator();
FieldValidator fv1 = mockFieldValidator();
FieldValidator fv2 = mockFieldValidator();
FieldValidatorSource source = mockFieldValidatorSource();
Class propertyType = Integer.class;
AnnotationProvider provider = mockAnnotationProvider();
String overrideId = "overrideId";
Messages overrideMessages = mockMessages();
Field field = mockField();
Locale locale = Locale.ENGLISH;
String value = "*VALUE*";
train_buildConstraints(gen, propertyType, provider, "cons1", "cons2");
train_createValidator(source, field, "cons1", null, overrideId, overrideMessages, locale, fv1);
train_createValidator(source, field, "cons2", null, overrideId, overrideMessages, locale, fv2);
fv1.validate(value);
fv2.validate(value);
replay();
FieldValidatorDefaultSource fieldValidatorSource = new FieldValidatorDefaultSourceImpl(gen, source);
FieldValidator composite = fieldValidatorSource.createDefaultValidator(field, overrideId, overrideMessages, locale, propertyType, provider);
composite.validate(value);
verify();
}
use of org.apache.tapestry5.services.FieldValidatorSource in project tapestry-5 by apache.
the class FieldValidatorDefaultSourceImplTest method validator_with_constraint.
@SuppressWarnings("unchecked")
@Test
public void validator_with_constraint() throws Exception {
ValidationConstraintGenerator gen = mockValidationConstraintGenerator();
FieldValidator fv = mockFieldValidator();
FieldValidatorSource source = mockFieldValidatorSource();
Class propertyType = Integer.class;
AnnotationProvider provider = mockAnnotationProvider();
String overrideId = "overrideId";
Messages overrideMessages = mockMessages();
Field field = mockField();
Locale locale = Locale.ENGLISH;
train_buildConstraints(gen, propertyType, provider, "foo=bar");
train_createValidator(source, field, "foo", "bar", overrideId, overrideMessages, locale, fv);
replay();
FieldValidatorDefaultSource fieldValidatorSource = new FieldValidatorDefaultSourceImpl(gen, source);
FieldValidator composite = fieldValidatorSource.createDefaultValidator(field, overrideId, overrideMessages, locale, propertyType, provider);
assertSame(composite, fv);
verify();
}
use of org.apache.tapestry5.services.FieldValidatorSource in project tapestry-5 by apache.
the class FieldValidatorSourceImplTest method multiple_validators_via_specification.
@SuppressWarnings("unchecked")
@Test
public void multiple_validators_via_specification() throws Exception {
Validator required = mockValidator();
Validator minLength = mockValidator();
TypeCoercer coercer = mockTypeCoercer();
FieldComponent field = newFieldComponent();
Messages messages = mockMessages();
MessageFormatter requiredFormatter = mockMessageFormatter();
MessageFormatter minLengthFormatter = mockMessageFormatter();
Object inputValue = "input value";
ComponentResources resources = mockComponentResources();
Messages containerMessages = mockMessages();
Integer fifteen = 15;
FormSupport fs = mockFormSupport();
Messages globalMessages = mockMessages();
Map<String, Validator> map = newMap();
map.put("required", required);
map.put("minLength", minLength);
train_getFormValidationId(fs, "myform");
train_getConstraintType(required, null);
train_getConstraintType(minLength, Integer.class);
train_getComponentResources(field, resources);
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
train_contains(containerMessages, "myform-fred-required-message", false);
train_contains(containerMessages, "fred-required-message", false);
train_getMessageKey(required, "required");
train_getMessageFormatter(globalMessages, "required", requiredFormatter);
train_contains(containerMessages, "myform-fred-minLength-message", false);
train_contains(containerMessages, "fred-minLength-message", false);
train_getMessageKey(minLength, "min-length");
train_getMessageFormatter(globalMessages, "min-length", minLengthFormatter);
train_coerce(coercer, "15", Integer.class, fifteen);
train_isRequired(required, true);
train_getValueType(required, Object.class);
required.validate(field, null, requiredFormatter, inputValue);
train_isRequired(minLength, false);
train_getValueType(minLength, String.class);
minLength.validate(field, fifteen, minLengthFormatter, inputValue);
ValidatorMacro macro = mockValidatorMacro();
train_alwaysNull(macro);
replay();
FieldValidatorSource source = new FieldValidatorSourceImpl(globalMessages, coercer, fs, map, macro);
FieldValidator fieldValidator = source.createValidators(field, "required,minLength=15");
fieldValidator.validate(inputValue);
verify();
}
use of org.apache.tapestry5.services.FieldValidatorSource in project tapestry-5 by apache.
the class FieldValidatorSourceImplTest method validator_with_constraint_and_macro.
@SuppressWarnings("unchecked")
@Test
public void validator_with_constraint_and_macro() throws Exception {
Validator validator = mockValidator();
TypeCoercer coercer = mockTypeCoercer();
FieldComponent field = newFieldComponent();
MessageFormatter formatter = mockMessageFormatter();
Object inputValue = new Object();
ComponentResources resources = mockComponentResources();
Messages containerMessages = mockMessages();
Integer five = 5;
FormSupport fs = mockFormSupport();
ValidatorMacro macro = mockValidatorMacro();
Messages globalMessages = mockMessages();
Map<String, Validator> map = singletonMap("minLength", validator);
train_getConstraintType(validator, Integer.class);
train_getFormValidationId(fs, "myform");
train_coerce(coercer, "77", Integer.class, five);
train_getComponentResources(field, resources);
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
expect(macro.valueForMacro("foo-bar-baz")).andReturn("minLength=77");
expect(macro.valueForMacro("minLength")).andReturn(null);
train_contains(containerMessages, "myform-fred-minLength-message", false);
train_contains(containerMessages, "fred-minLength-message", false);
train_getMessageKey(validator, "key");
train_getMessageFormatter(globalMessages, "key", formatter);
train_isRequired(validator, false);
train_getValueType(validator, Object.class);
validator.validate(field, five, formatter, inputValue);
replay();
FieldValidatorSource source = new FieldValidatorSourceImpl(globalMessages, coercer, fs, map, macro);
FieldValidator fieldValidator = source.createValidator(field, "foo-bar-baz", null);
fieldValidator.validate(inputValue);
verify();
}
use of org.apache.tapestry5.services.FieldValidatorSource in project tapestry-5 by apache.
the class FieldValidatorSourceImplTest method component_messages_overrides_validator_messages.
@SuppressWarnings("unchecked")
@Test
public void component_messages_overrides_validator_messages() throws Exception {
Validator validator = mockValidator();
TypeCoercer coercer = mockTypeCoercer();
FieldComponent field = newFieldComponent();
MessageFormatter formatter = mockMessageFormatter();
Object inputValue = new Object();
ComponentResources resources = mockComponentResources();
Messages containerMessages = mockMessages();
FormSupport fs = mockFormSupport();
ValidatorMacro macro = mockValidatorMacro();
Map<String, Validator> map = singletonMap("required", validator);
train_getConstraintType(validator, null);
train_getFormValidationId(fs, "form");
train_getComponentResources(field, resources);
train_getId(resources, "fred");
train_getContainerMessages(resources, containerMessages);
train_alwaysNull(macro);
train_contains(containerMessages, "form-fred-required-message", false);
train_contains(containerMessages, "fred-required-message", true);
train_getMessageFormatter(containerMessages, "fred-required-message", formatter);
train_isRequired(validator, false);
train_getValueType(validator, Object.class);
validator.validate(field, null, formatter, inputValue);
replay();
FieldValidatorSource source = new FieldValidatorSourceImpl(null, coercer, fs, map, macro);
FieldValidator fieldValidator = source.createValidator(field, "required", null);
fieldValidator.validate(inputValue);
verify();
}
Aggregations