use of org.apache.tapestry5.services.Environment in project tapestry-5 by apache.
the class MessagesAnnotationConstraintGeneratorTest method single_constraint.
@Test
public void single_constraint() {
Environment e = getService(Environment.class);
pushAndTrainEnvironmentalObjects(e, true, "required");
MessagesConstraintGenerator gen = new MessagesConstraintGenerator(e);
assertEquals(gen.buildConstraints(null, null), Arrays.asList("required"));
}
use of org.apache.tapestry5.services.Environment in project tapestry-5 by apache.
the class MessagesAnnotationConstraintGeneratorTest method multiple_constraints.
@Test
public void multiple_constraints() {
Environment e = getService(Environment.class);
pushAndTrainEnvironmentalObjects(e, true, "required,minlength=3,regexp=^([a-zA-Z0-9]{2,4})+@(\\p{Lower})*$");
MessagesConstraintGenerator gen = new MessagesConstraintGenerator(e);
assertEquals(gen.buildConstraints(null, null), Arrays.asList("required", "minlength=3", "regexp=^([a-zA-Z0-9]{2,4})+@(\\p{Lower})*$"));
}
use of org.apache.tapestry5.services.Environment in project tapestry-5 by apache.
the class MessagesAnnotationConstraintGeneratorTest method no_property.
@Test
public void no_property() {
Environment e = getService(Environment.class);
pushAndTrainEnvironmentalObjects(e, false, null);
MessagesConstraintGenerator gen = new MessagesConstraintGenerator(e);
assertNull(gen.buildConstraints(null, null));
pop(e);
verify();
}
use of org.apache.tapestry5.services.Environment in project tapestry-5 by apache.
the class MessagesAnnotationConstraintGeneratorTest method empty_message.
@Test
public void empty_message() {
Environment e = getService(Environment.class);
pushAndTrainEnvironmentalObjects(e, true, "");
MessagesConstraintGenerator gen = new MessagesConstraintGenerator(e);
assertNull(gen.buildConstraints(null, null));
pop(e);
verify();
}
use of org.apache.tapestry5.services.Environment in project tapestry-5 by apache.
the class TapestryModule method decorateFieldValidatorDefaultSource.
/**
* Decorate FieldValidatorDefaultSource to setup the EnvironmentMessages
* object and place it in the environment.
* Although this could have been implemented directly in the default
* implementation of the service, doing it
* as service decoration ensures that the environment will be properly setup
* even if a user overrides the default
* service implementation.
*
* @param defaultSource
* The service to decorate
* @param environment
*/
public static FieldValidatorDefaultSource decorateFieldValidatorDefaultSource(final FieldValidatorDefaultSource defaultSource, final Environment environment) {
return new FieldValidatorDefaultSource() {
public FieldValidator createDefaultValidator(Field field, String overrideId, Messages overrideMessages, Locale locale, Class propertyType, AnnotationProvider propertyAnnotations) {
environment.push(EnvironmentMessages.class, new EnvironmentMessages(overrideMessages, overrideId));
FieldValidator fieldValidator = defaultSource.createDefaultValidator(field, overrideId, overrideMessages, locale, propertyType, propertyAnnotations);
environment.pop(EnvironmentMessages.class);
return fieldValidator;
}
public FieldValidator createDefaultValidator(ComponentResources resources, String parameterName) {
EnvironmentMessages em = new EnvironmentMessages(resources.getContainerMessages(), resources.getId());
environment.push(EnvironmentMessages.class, em);
FieldValidator fieldValidator = defaultSource.createDefaultValidator(resources, parameterName);
environment.pop(EnvironmentMessages.class);
return fieldValidator;
}
};
}
Aggregations