1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.validator;
18
19 import static org.junit.jupiter.api.Assertions.assertNotNull;
20 import static org.junit.jupiter.api.Assertions.assertTrue;
21
22 import java.io.IOException;
23
24 import org.junit.jupiter.api.AfterEach;
25 import org.junit.jupiter.api.BeforeEach;
26 import org.junit.jupiter.api.Test;
27 import org.xml.sax.SAXException;
28
29
30
31
32 public class MultipleTest extends AbstractCommonTest {
33
34
35
36
37 protected static String FORM_KEY = "nameForm";
38
39
40
41
42 protected static String ACTION = "required";
43
44
45
46
47 @BeforeEach
48 protected void setUp() throws IOException, SAXException {
49
50 loadResources("MultipleTests-config.xml");
51 }
52
53 @AfterEach
54 protected void tearDown() {
55 }
56
57
58
59
60 @Test
61 public void testBothBlank() throws ValidatorException {
62
63 final NameBean name = new NameBean();
64
65
66
67 final Validator validator = new Validator(resources, FORM_KEY);
68
69
70 validator.setParameter(Validator.BEAN_PARAM, name);
71
72
73
74
75
76
77 final ValidatorResults results = validator.validate();
78
79 assertNotNull(results, "Results are null.");
80
81 final ValidatorResult firstNameResult = results.getValidatorResult("firstName");
82 final ValidatorResult lastNameResult = results.getValidatorResult("lastName");
83
84 assertNotNull(firstNameResult, "First Name ValidatorResult should not be null.");
85 assertTrue(firstNameResult.containsAction(ACTION), () -> "First Name ValidatorResult should contain the '" + ACTION + "' action.");
86 assertTrue(!firstNameResult.isValid(ACTION), () -> "First Name ValidatorResult for the '" + ACTION + "' action should have failed.");
87
88 assertNotNull(lastNameResult, "Last Name ValidatorResult should not be null.");
89 assertTrue(lastNameResult.containsAction(ACTION), () -> "Last Name ValidatorResult should contain the '" + ACTION + "' action.");
90 assertTrue(!lastNameResult.isValid(ACTION), () -> "Last Name ValidatorResult for the '" + ACTION + "' action should have failed.");
91 assertTrue(!lastNameResult.containsAction("int"), "Last Name ValidatorResults should not contain the 'int' action.");
92 }
93
94
95
96
97
98
99 @Test
100 public void testFailingFirstDependentValidator() throws ValidatorException {
101
102 final NameBean name = new NameBean();
103
104
105
106 final Validator validator = new Validator(resources, FORM_KEY);
107
108
109 validator.setParameter(Validator.BEAN_PARAM, name);
110
111
112 final ValidatorResults results = validator.validate();
113
114 assertNotNull(results, "Results are null.");
115
116 final ValidatorResult middleNameResult = results.getValidatorResult("middleName");
117
118 assertNotNull(middleNameResult, "Middle Name ValidatorResult should not be null.");
119
120 assertTrue(middleNameResult.containsAction("required"), "Middle Name ValidatorResult should contain the 'required' action.");
121 assertTrue(!middleNameResult.isValid("required"), "Middle Name ValidatorResult for the 'required' action should have failed");
122
123 assertTrue(!middleNameResult.containsAction("int"), "Middle Name ValidatorResult should not contain the 'int' action.");
124
125 assertTrue(!middleNameResult.containsAction("positive"), "Middle Name ValidatorResult should not contain the 'positive' action.");
126 }
127
128
129
130
131
132
133 @Test
134 public void testFailingNextDependentValidator() throws ValidatorException {
135
136 final NameBean name = new NameBean();
137 name.setMiddleName("TEST");
138
139
140
141 final Validator validator = new Validator(resources, FORM_KEY);
142
143
144 validator.setParameter(Validator.BEAN_PARAM, name);
145
146
147 final ValidatorResults results = validator.validate();
148
149 assertNotNull(results, "Results are null.");
150
151 final ValidatorResult middleNameResult = results.getValidatorResult("middleName");
152
153 assertNotNull(middleNameResult, "Middle Name ValidatorResult should not be null.");
154
155 assertTrue(middleNameResult.containsAction("required"), "Middle Name ValidatorResult should contain the 'required' action.");
156 assertTrue(middleNameResult.isValid("required"), "Middle Name ValidatorResult for the 'required' action should have passed");
157
158 assertTrue(middleNameResult.containsAction("int"), "Middle Name ValidatorResult should contain the 'int' action.");
159 assertTrue(!middleNameResult.isValid("int"), "Middle Name ValidatorResult for the 'int' action should have failed");
160
161 assertTrue(!middleNameResult.containsAction("positive"), "Middle Name ValidatorResult should not contain the 'positive' action.");
162 }
163
164
165
166
167
168
169 @Test
170 public void testPassingDependentsFailingMain() throws ValidatorException {
171
172 final NameBean name = new NameBean();
173 name.setMiddleName("-2534");
174
175
176
177 final Validator validator = new Validator(resources, FORM_KEY);
178
179
180 validator.setParameter(Validator.BEAN_PARAM, name);
181
182
183 final ValidatorResults results = validator.validate();
184
185 assertNotNull(results, "Results are null.");
186
187 final ValidatorResult middleNameResult = results.getValidatorResult("middleName");
188
189 assertNotNull(middleNameResult, "Middle Name ValidatorResult should not be null.");
190
191 assertTrue(middleNameResult.containsAction("required"), "Middle Name ValidatorResult should contain the 'required' action.");
192 assertTrue(middleNameResult.isValid("required"), "Middle Name ValidatorResult for the 'required' action should have passed");
193
194 assertTrue(middleNameResult.containsAction("int"), "Middle Name ValidatorResult should contain the 'int' action.");
195 assertTrue(middleNameResult.isValid("int"), "Middle Name ValidatorResult for the 'int' action should have passed");
196
197 assertTrue(middleNameResult.containsAction("positive"), "Middle Name ValidatorResult should contain the 'positive' action.");
198 assertTrue(!middleNameResult.isValid("positive"), "Middle Name ValidatorResult for the 'positive' action should have failed");
199 }
200
201
202
203
204
205
206 @Test
207 public void testPassingDependentsPassingMain() throws ValidatorException {
208
209 final NameBean name = new NameBean();
210 name.setMiddleName("2534");
211
212
213
214 final Validator validator = new Validator(resources, FORM_KEY);
215
216
217 validator.setParameter(Validator.BEAN_PARAM, name);
218
219
220 final ValidatorResults results = validator.validate();
221
222 assertNotNull(results, "Results are null.");
223
224 final ValidatorResult middleNameResult = results.getValidatorResult("middleName");
225
226 assertNotNull(middleNameResult, "Middle Name ValidatorResult should not be null.");
227
228 assertTrue(middleNameResult.containsAction("required"), "Middle Name ValidatorResult should contain the 'required' action.");
229 assertTrue(middleNameResult.isValid("required"), "Middle Name ValidatorResult for the 'required' action should have passed");
230
231 assertTrue(middleNameResult.containsAction("int"), "Middle Name ValidatorResult should contain the 'int' action.");
232 assertTrue(middleNameResult.isValid("int"), "Middle Name ValidatorResult for the 'int' action should have passed");
233
234 assertTrue(middleNameResult.containsAction("positive"), "Middle Name ValidatorResult should contain the 'positive' action.");
235 assertTrue(middleNameResult.isValid("positive"), "Middle Name ValidatorResult for the 'positive' action should have passed");
236 }
237
238
239
240
241 @Test
242 public void testRequiredFirstNameBlankLastNameShort() throws ValidatorException {
243
244 final NameBean name = new NameBean();
245 name.setFirstName("");
246 name.setLastName("Test");
247
248
249
250 final Validator validator = new Validator(resources, FORM_KEY);
251
252
253 validator.setParameter(Validator.BEAN_PARAM, name);
254
255
256 final ValidatorResults results = validator.validate();
257
258 assertNotNull(results, "Results are null.");
259
260 final ValidatorResult firstNameResult = results.getValidatorResult("firstName");
261 final ValidatorResult lastNameResult = results.getValidatorResult("lastName");
262
263 assertNotNull(firstNameResult, "First Name ValidatorResult should not be null.");
264 assertTrue(firstNameResult.containsAction(ACTION), () -> "First Name ValidatorResult should contain the '" + ACTION + "' action.");
265 assertTrue(!firstNameResult.isValid(ACTION), () -> "First Name ValidatorResult for the '" + ACTION + "' action should have failed.");
266
267 assertNotNull(lastNameResult, "Last Name ValidatorResult should not be null.");
268 assertTrue(lastNameResult.containsAction("int"), "Last Name ValidatorResult should contain the 'int' action.");
269 assertTrue(!lastNameResult.isValid("int"), "Last Name ValidatorResult for the 'int' action should have failed.");
270 }
271
272
273
274
275 @Test
276 public void testRequiredLastNameLong() throws ValidatorException {
277
278 final NameBean name = new NameBean();
279 name.setFirstName("Joe");
280 name.setLastName("12345678");
281
282
283
284 final Validator validator = new Validator(resources, FORM_KEY);
285
286
287 validator.setParameter(Validator.BEAN_PARAM, name);
288
289
290 final ValidatorResults results = validator.validate();
291
292 assertNotNull(results, "Results are null.");
293
294 final ValidatorResult firstNameResult = results.getValidatorResult("firstName");
295 final ValidatorResult lastNameResult = results.getValidatorResult("lastName");
296
297 assertNotNull(firstNameResult, "First Name ValidatorResult should not be null.");
298 assertTrue(firstNameResult.containsAction(ACTION), () -> "First Name ValidatorResult should contain the '" + ACTION + "' action.");
299 assertTrue(firstNameResult.isValid(ACTION), () -> "First Name ValidatorResult for the '" + ACTION + "' action should have passed.");
300
301 assertNotNull(lastNameResult, "Last Name ValidatorResult should not be null.");
302 assertTrue(lastNameResult.containsAction("int"), "Last Name ValidatorResult should contain the 'int' action.");
303 assertTrue(lastNameResult.isValid("int"), "Last Name ValidatorResult for the 'int' action should have passed.");
304 }
305
306
307
308
309 @Test
310 public void testRequiredLastNameShort() throws ValidatorException {
311
312 final NameBean name = new NameBean();
313 name.setFirstName("Test");
314 name.setLastName("Test");
315
316
317
318 final Validator validator = new Validator(resources, FORM_KEY);
319
320
321 validator.setParameter(Validator.BEAN_PARAM, name);
322
323
324 final ValidatorResults results = validator.validate();
325
326 assertNotNull(results, "Results are null.");
327
328 final ValidatorResult firstNameResult = results.getValidatorResult("firstName");
329 final ValidatorResult lastNameResult = results.getValidatorResult("lastName");
330
331 assertNotNull(firstNameResult, "First Name ValidatorResult should not be null.");
332 assertTrue(firstNameResult.containsAction(ACTION), () -> "First Name ValidatorResult should contain the '" + ACTION + "' action.");
333 assertTrue(firstNameResult.isValid(ACTION), () -> "First Name ValidatorResult for the '" + ACTION + "' action should have passed.");
334
335 assertNotNull(lastNameResult, "Last Name ValidatorResult should not be null.");
336 assertTrue(lastNameResult.containsAction("int"), "Last Name ValidatorResult should contain the 'int' action.");
337 assertTrue(!lastNameResult.isValid("int"), "Last Name ValidatorResult for the 'int' action should have failed.");
338 }
339 }