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