/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/beanvalidation/hibernate/validator/MessageInterpolationValidationTestCase.java
Java | 75 lines | 51 code | 16 blank | 8 comment | 0 complexity | 554b5ad745b4b49ec2f291fedc0627eb MD5 | raw file
1package org.jboss.as.test.integration.beanvalidation.hibernate.validator;
2
3import static java.lang.annotation.ElementType.FIELD;
4
5import java.util.Set;
6
7import javax.validation.ConstraintViolation;
8import javax.validation.MessageInterpolator;
9import javax.validation.Validation;
10import javax.validation.Validator;
11import javax.validation.ValidatorFactory;
12
13import org.junit.Assert;
14
15import org.hibernate.validator.HibernateValidator;
16import org.hibernate.validator.HibernateValidatorConfiguration;
17import org.hibernate.validator.cfg.ConstraintMapping;
18import org.hibernate.validator.cfg.defs.EmailDef;
19import org.hibernate.validator.messageinterpolation.ValueFormatterMessageInterpolator;
20import org.jboss.arquillian.container.test.api.Deployment;
21import org.jboss.arquillian.junit.Arquillian;
22import org.jboss.shrinkwrap.api.Archive;
23import org.jboss.shrinkwrap.api.ShrinkWrap;
24import org.jboss.shrinkwrap.api.spec.WebArchive;
25import org.junit.Test;
26import org.junit.runner.RunWith;
27
28/**
29 *
30 * Tests that message interpolation works correctly for hibernate validator
31 *
32 *
33 * @author Madhumita Sadhukhan
34 */
35@RunWith(Arquillian.class)
36public class MessageInterpolationValidationTestCase {
37
38 @Deployment
39 public static Archive<?> deploy() {
40 final WebArchive war = ShrinkWrap.create(WebArchive.class, "testmessageinterpolationvalidation.war");
41 war.addPackage(MessageInterpolationValidationTestCase.class.getPackage());
42 return war;
43
44 }
45
46 @Test
47 public void testCustomMessageInterpolation() {
48
49 HibernateValidatorConfiguration configuration = Validation.byProvider(HibernateValidator.class).configure();
50 Assert.assertNotNull(configuration);
51 ConstraintMapping mapping = new ConstraintMapping();
52 mapping.type(Employee.class).property("firstName", FIELD)
53 .constraint(new EmailDef().message("Invalid Email!You have entered:--\\{${validatedValue}\\}"));
54
55 final MessageInterpolator messageInterpolator = new ValueFormatterMessageInterpolator();
56 configuration.messageInterpolator(messageInterpolator);
57 configuration.addMapping(mapping);
58
59 ValidatorFactory factory = configuration.buildValidatorFactory();
60 Validator validator = factory.getValidator();
61
62 Employee emp = new Employee();
63 // create employee
64 emp.setEmpId("M1234");
65 emp.setFirstName("MADHUMITA");
66 String email = "MADHUMITA";
67
68 Set<ConstraintViolation<Employee>> constraintViolations = validator.validate(emp);
69
70 Assert.assertEquals("Wrong number of constraints", constraintViolations.size(), 1);
71 Assert.assertEquals("Invalid Email!You have entered:--{" + email + "}", constraintViolations.iterator().next()
72 .getMessage());
73
74 }
75}