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.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23
24 import java.io.IOException;
25
26 import org.junit.jupiter.api.AfterEach;
27 import org.junit.jupiter.api.BeforeEach;
28 import org.junit.jupiter.api.Test;
29 import org.xml.sax.SAXException;
30
31
32
33
34 public class ValidatorResultsTest extends AbstractCommonTest {
35
36 private static final String FORM_KEY = "nameForm";
37 private static final String firstNameField = "firstName";
38 private static final String middleNameField = "middleName";
39 private static final String lastNameField = "lastName";
40
41 private String firstName;
42 private String middleName;
43 private String lastName;
44
45
46
47
48 private void checkNotRun(final ValidatorResults results, final String field, final String action) {
49 final ValidatorResult result = results.getValidatorResult(field);
50 assertNotNull(result, () -> field + " result");
51 assertFalse(result.containsAction(action), () -> field + "[" + action + "] run");
52
53 }
54
55
56
57
58 private void checkValidatorResult(final ValidatorResults results, final String field, final String action, final boolean expected) {
59 final ValidatorResult result = results.getValidatorResult(field);
60
61 assertNotNull(result, () -> field + " result");
62 assertTrue(result.containsAction(action), () -> field + "[" + action + "] not run");
63 assertEquals(expected, result.isValid(action), () -> field + "[" + action + "] result");
64 }
65
66
67
68
69 private NameBean createNameBean() {
70 final NameBean name = new NameBean();
71 name.setFirstName(firstName);
72 name.setMiddleName(middleName);
73 name.setLastName(lastName);
74 return name;
75 }
76
77
78
79
80 @BeforeEach
81 protected void setUp() throws IOException, SAXException {
82
83 loadResources("ValidatorResultsTest-config.xml");
84
85
86 firstName = "foo";
87 middleName = "123";
88 lastName = "456";
89
90 }
91
92 @AfterEach
93 protected void tearDown() {
94 }
95
96
97
98
99 @Test
100 public void testAllValid() throws ValidatorException {
101
102
103 final NameBean bean = createNameBean();
104
105
106 final ValidatorResults results = validate(bean);
107
108
109 checkValidatorResult(results, firstNameField, "required", true);
110 checkValidatorResult(results, middleNameField, "required", true);
111 checkValidatorResult(results, middleNameField, "int", true);
112 checkValidatorResult(results, middleNameField, "positive", true);
113 checkValidatorResult(results, lastNameField, "required", true);
114 checkValidatorResult(results, lastNameField, "int", true);
115
116 }
117
118
119
120
121 @Test
122 public void testErrors() throws ValidatorException {
123
124 middleName = "XXX";
125 lastName = null;
126
127
128 final NameBean bean = createNameBean();
129
130
131 final ValidatorResults results = validate(bean);
132
133
134 checkValidatorResult(results, firstNameField, "required", true);
135 checkValidatorResult(results, middleNameField, "required", true);
136 checkValidatorResult(results, middleNameField, "int", false);
137 checkNotRun(results, middleNameField, "positive");
138 checkValidatorResult(results, lastNameField, "required", false);
139 checkNotRun(results, lastNameField, "int");
140
141 }
142
143
144
145
146 private ValidatorResults validate(final Object bean) throws ValidatorException {
147
148
149
150 final Validator validator = new Validator(resources, FORM_KEY);
151
152
153
154 validator.setParameter(Validator.BEAN_PARAM, bean);
155
156
157 final ValidatorResults results = validator.validate();
158
159 return results;
160
161 }
162
163 }