1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.jboss.as.quickstarts.bean_validation.test;
18
19 import java.util.Set;
20
21 import javax.inject.Inject;
22 import javax.validation.ConstraintViolation;
23 import javax.validation.Validator;
24
25 import org.jboss.arquillian.container.test.api.Deployment;
26 import org.jboss.arquillian.junit.Arquillian;
27 import org.jboss.as.quickstarts.bean_validation.model.Member;
28 import org.jboss.shrinkwrap.api.Archive;
29 import org.jboss.shrinkwrap.api.ShrinkWrap;
30 import org.jboss.shrinkwrap.api.asset.EmptyAsset;
31 import org.jboss.shrinkwrap.api.spec.WebArchive;
32 import org.junit.Assert;
33 import org.junit.Test;
34 import org.junit.runner.RunWith;
35
36
37
38
39
40
41
42
43
44
45
46
47 @RunWith(Arquillian.class)
48 public class MemberValidationTest {
49
50
51
52
53
54
55 @Deployment
56 public static Archive<?> createTestArchive() {
57 return ShrinkWrap.create(WebArchive.class, "test.war").addClasses(Member.class)
58
59 .addAsResource("META-INF/test-persistence.xml", "META-INF/persistence.xml")
60
61 .addAsResource("import.sql")
62
63 .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml")
64
65 .addAsWebInfResource("test-ds.xml", "test-ds.xml");
66 }
67
68
69 @Inject
70 Validator validator;
71
72
73
74
75
76
77
78
79
80
81
82 @Test
83 public void testRegisterEmptyMember() {
84
85 Member member = new Member();
86 Set<ConstraintViolation<Member>> violations = validator.validate(member);
87
88 Assert.assertEquals("Four violations were found", 4, violations.size());
89 }
90
91
92
93
94 @Test
95 public void testRegisterValidMember() {
96 Set<ConstraintViolation<Member>> violations = validator.validate(createValidMember());
97
98 Assert.assertEquals("No violations were found", 0, violations.size());
99 }
100
101
102
103
104 @Test
105 public void testNameViolation() {
106 Member member = createValidMember();
107 member.setName("Joe Doe-Dah");
108 Set<ConstraintViolation<Member>> violations = validator.validate(member);
109
110 Assert.assertEquals("One violation was found", 1, violations.size());
111 Assert.assertEquals("Name was invalid", "must contain only letters and spaces", violations.iterator().next()
112 .getMessage());
113 }
114
115
116
117
118 @Test
119 public void testEmailViolation() {
120 Member member = createValidMember();
121 member.setEmail("invalid-email");
122 Set<ConstraintViolation<Member>> violations = validator.validate(member);
123
124 Assert.assertEquals("One violation was found", 1, violations.size());
125 Assert.assertEquals("Email was invalid", "not a well-formed email address", violations.iterator().next().getMessage());
126 }
127
128
129
130
131 @Test
132 public void testPhoneViolation() {
133 Member member = createValidMember();
134 member.setPhoneNumber("123");
135 Set<ConstraintViolation<Member>> violations = validator.validate(member);
136
137 Assert.assertEquals("One violation was found", 1, violations.size());
138 Assert.assertEquals("Phone number was invalid", "size must be between 10 and 12", violations.iterator().next()
139 .getMessage());
140 }
141
142 private Member createValidMember() {
143 Member member = new Member();
144 member.setEmail("jdoe@test.org");
145 member.setName("John Doe");
146 member.setPhoneNumber("1234567890");
147 return member;
148 }
149
150 }