@Override public String getMessageTemplate() { return wrapped.getMessageTemplate(); }
@Override public final String getDefaultConstraintMessageTemplate() { return constraintDescriptor.getMessageTemplate(); }
@Override public String getMessageTemplate() { return constraintDescriptor.getMessageTemplate(); }
public String getMessageTemplate() { return wrapped.getMessageTemplate(); }
@Override public final String getDefaultConstraintMessageTemplate() { return constraintDescriptor.getMessageTemplate(); }
@Test @SpecAssertion(section = Sections.CONSTRAINTMETADATA_CONSTRAINTDESCRIPTOR, id = "e") public void testGetMessageTemplate() { ConstraintDescriptor<?> descriptor = getConstraintDescriptor( Person.class, "middleName" ); String messageTemplate = descriptor.getMessageTemplate(); assertEquals( messageTemplate, "must at least be {min} characters long" ); }
private boolean evaluateExpressionLanguage(String template, Context context) { if (evaluator != null) { if (Objects.equals(template, context.getConstraintDescriptor().getMessageTemplate())) { return true; } final Optional<ApacheMessageContext> apacheMessageContext = Optional.of(context).map(ctx -> { try { return ctx.unwrap(ApacheMessageContext.class); } catch (Exception e) { return null; } }); return !apacheMessageContext.isPresent() || apacheMessageContext .map(amc -> amc.getConfigurationProperty( ApacheValidatorConfiguration.Properties.CUSTOM_TEMPLATE_EXPRESSION_EVALUATION)) .filter(Boolean::parseBoolean).isPresent(); } return false; }
private boolean evaluateExpressionLanguage(String template, Context context) { if (evaluator != null) { if (Objects.equals(template, context.getConstraintDescriptor().getMessageTemplate())) { return true; } final Optional<ApacheMessageContext> apacheMessageContext = Optional.of(context).map(ctx -> { try { return ctx.unwrap(ApacheMessageContext.class); } catch (Exception e) { return null; } }); return !apacheMessageContext.isPresent() || apacheMessageContext .map(amc -> amc.getConfigurationProperty( ApacheValidatorConfiguration.Properties.CUSTOM_TEMPLATE_EXPRESSION_EVALUATION)) .filter(Boolean::parseBoolean).isPresent(); } return false; }
public MinijaxConstraintViolation( final T rootBean, final Path propertyPath, final Object invalidValue, final ConstraintDescriptor<?> constraintDescriptor) { this.rootBean = rootBean; this.propertyPath = propertyPath; this.invalidValue = invalidValue; this.constraintDescriptor = constraintDescriptor; message = MinijaxMessageInterpolator.generateMessage( constraintDescriptor.getMessageTemplate(), constraintDescriptor.getAnnotation(), invalidValue); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_DEFAULTMESSAGEINTERPOLATION_RESOLUTIONALGORITHM, id = "g") public void testElExpressionsAreInterpolated() { MessageInterpolator interpolator = getDefaultMessageInterpolator(); ConstraintDescriptor<?> descriptor = getDescriptorFor( DummyEntity.class, "doubleAmount" ); MessageInterpolator.Context context = new TestContext( descriptor ); String expected = "must be 10 at least"; String actual = interpolator.interpolate( descriptor.getMessageTemplate(), context ); assertEquals( actual, expected, "Wrong substitution" ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_DEFAULTMESSAGEINTERPOLATION_RESOLUTIONALGORITHM, id = "f") public void testParameterInterpolationHasPrecedenceOverExpressionEvaluation() { MessageInterpolator interpolator = getDefaultMessageInterpolator(); ConstraintDescriptor<?> descriptor = getDescriptorFor( DummyEntity.class, "amount" ); MessageInterpolator.Context context = new TestContext( descriptor ); //if EL evaluation kicked in first, the "$" would be gone String expected = "must be $5 at least"; String actual = interpolator.interpolate( descriptor.getMessageTemplate(), context ); assertEquals( actual, expected, "Wrong substitution" ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_DEFAULTMESSAGEINTERPOLATION_RESOLUTIONALGORITHM, id = "b") public void testRecursiveMessageInterpolation() { MessageInterpolator interpolator = getDefaultMessageInterpolator(); ConstraintDescriptor<?> descriptor = getDescriptorFor( DummyEntity.class, "fubar" ); MessageInterpolator.Context context = new TestContext( descriptor ); String expected = "recursion worked"; String actual = interpolator.interpolate( descriptor.getMessageTemplate(), context ); assertEquals( actual, expected, "Expansion should be recursive" ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_DEFAULTMESSAGEINTERPOLATION_RESOLUTIONALGORITHM, id = "f") public void testConstraintAttributeValuesAreInterpolated() { MessageInterpolator interpolator = getDefaultMessageInterpolator(); ConstraintDescriptor<?> descriptor = getDescriptorFor( DummyEntity.class, "bar" ); MessageInterpolator.Context context = new TestContext( descriptor ); String expected = "size must be between 5 and 10"; String actual = interpolator.interpolate( descriptor.getMessageTemplate(), context ); assertEquals( actual, expected, "Wrong substitution" ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_DEFAULTMESSAGEINTERPOLATION_LOCALE, id = "a") public void testMessageInterpolationWithLocale() { MessageInterpolator interpolator = getDefaultMessageInterpolator(); ConstraintDescriptor<?> descriptor = getDescriptorFor( DummyEntity.class, "foo" ); MessageInterpolator.Context context = new TestContext( descriptor ); String expected = "kann nicht null sein"; String actual = interpolator.interpolate( descriptor.getMessageTemplate(), context, Locale.GERMAN ); assertEquals( actual, expected, "Wrong substitution" ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_DEFAULTMESSAGEINTERPOLATION_LOCALE, id = "b") public void testIfNoLocaleIsSpecifiedTheDefaultLocaleIsAssumed() { MessageInterpolator interpolator = getDefaultMessageInterpolator(); ConstraintDescriptor<?> descriptor = getDescriptorFor( DummyEntity.class, "foo" ); String messageTemplate = descriptor.getMessageTemplate(); MessageInterpolator.Context context = new TestContext( descriptor ); String messageInterpolatedWithNoLocale = interpolator.interpolate( messageTemplate, context ); String messageInterpolatedWithDefaultLocale = interpolator.interpolate( messageTemplate, context, Locale.getDefault() ); assertEquals( messageInterpolatedWithNoLocale, messageInterpolatedWithDefaultLocale, "Wrong substitution" ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_CUSTOMRESOLUTION, id = "a") @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_CUSTOMRESOLUTION, id = "b") @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_CUSTOMRESOLUTION, id = "c") public void testCorrectValuesArePassedToInterpolateForClassLevelConstraint() { TestMessageInterpolator messageInterpolator = new TestMessageInterpolator(); Validator validator = TestUtil.getConfigurationUnderTest() .messageInterpolator( messageInterpolator ) .buildValidatorFactory() .getValidator(); TestBeanWithClassLevelConstraint testBean = new TestBeanWithClassLevelConstraint(); validator.validate( testBean ); assertEquals( messageInterpolator.messageTemplate, TestBeanWithClassLevelConstraint.MESSAGE ); ConstraintDescriptor<?> constraintDescriptor = messageInterpolator.constraintDescriptor; assertEquals( constraintDescriptor.getAnnotation().annotationType(), ValidTestBean.class ); assertEquals( constraintDescriptor.getMessageTemplate(), TestBeanWithClassLevelConstraint.MESSAGE ); assertEquals( messageInterpolator.validatedValue, testBean ); }
@Test @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_CUSTOMRESOLUTION, id = "a") @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_CUSTOMRESOLUTION, id = "b") @SpecAssertion(section = Sections.VALIDATIONAPI_MESSAGE_CUSTOMRESOLUTION, id = "c") public void testCorrectValuesArePassedToInterpolateForPropertyConstraint() { TestMessageInterpolator messageInterpolator = new TestMessageInterpolator(); Validator validator = TestUtil.getConfigurationUnderTest() .messageInterpolator( messageInterpolator ) .buildValidatorFactory() .getValidator(); String name = "Bob"; validator.validate( new TestBeanWithPropertyConstraint( name ) ); assertEquals( messageInterpolator.messageTemplate, TestBeanWithPropertyConstraint.MESSAGE ); ConstraintDescriptor<?> constraintDescriptor = messageInterpolator.constraintDescriptor; assertEquals( constraintDescriptor.getAnnotation().annotationType(), Size.class ); assertEquals( constraintDescriptor.getMessageTemplate(), TestBeanWithPropertyConstraint.MESSAGE ); assertEquals( messageInterpolator.validatedValue, name ); }
assertEquals( descriptor.getMessageTemplate(), "Message from xml" ); assertEquals( descriptor.getGroups(), TestUtil.<Class<?>>asSet( TestGroup.class ) ); assertEquals( descriptor.getPayload(), TestUtil.<Class<?>>asSet( Error.class ) );
.getConstraintDescriptors()) { String friendlyConstraint = messageInterpolator.interpolate( constraintDescriptor.getMessageTemplate(), new DummyContext(constraintDescriptor)); result.append("\t\t[" + friendlyConstraint + "]\n", AttributedStyle.BOLD);