22
22
import java .lang .annotation .Target ;
23
23
import java .util .Arrays ;
24
24
import java .util .Iterator ;
25
+ import java .util .LinkedHashSet ;
26
+ import java .util .LinkedList ;
27
+ import java .util .List ;
25
28
import java .util .Set ;
26
29
import javax .validation .Constraint ;
27
30
import javax .validation .ConstraintValidator ;
31
34
import javax .validation .constraints .NotNull ;
32
35
33
36
import org .hibernate .validator .HibernateValidator ;
34
- import static org .junit .Assert .*;
35
37
import org .junit .Test ;
36
38
37
39
import org .springframework .validation .BeanPropertyBindingResult ;
38
40
import org .springframework .validation .FieldError ;
39
41
import org .springframework .validation .ObjectError ;
40
42
43
+ import static org .junit .Assert .*;
44
+
41
45
/**
42
46
* @author Juergen Hoeller
43
47
* @since 3.0
@@ -124,7 +128,53 @@ public void testSpringValidationWithClassLevel() throws Exception {
124
128
BeanPropertyBindingResult result = new BeanPropertyBindingResult (person , "person" );
125
129
validator .validate (person , result );
126
130
assertEquals (1 , result .getErrorCount ());
127
- ObjectError fieldError = result .getGlobalError ();
131
+ ObjectError globalError = result .getGlobalError ();
132
+ System .out .println (Arrays .asList (globalError .getCodes ()));
133
+ System .out .println (globalError .getDefaultMessage ());
134
+ }
135
+
136
+ @ Test
137
+ public void testSpringValidationWithErrorInListElement () throws Exception {
138
+ LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean ();
139
+ validator .afterPropertiesSet ();
140
+ ValidPerson person = new ValidPerson ();
141
+ person .getAddressList ().add (new ValidAddress ());
142
+ BeanPropertyBindingResult result = new BeanPropertyBindingResult (person , "person" );
143
+ validator .validate (person , result );
144
+ assertEquals (3 , result .getErrorCount ());
145
+ FieldError fieldError = result .getFieldError ("name" );
146
+ assertEquals ("name" , fieldError .getField ());
147
+ System .out .println (Arrays .asList (fieldError .getCodes ()));
148
+ System .out .println (fieldError .getDefaultMessage ());
149
+ fieldError = result .getFieldError ("address.street" );
150
+ assertEquals ("address.street" , fieldError .getField ());
151
+ System .out .println (Arrays .asList (fieldError .getCodes ()));
152
+ System .out .println (fieldError .getDefaultMessage ());
153
+ fieldError = result .getFieldError ("addressList[0].street" );
154
+ assertEquals ("addressList[0].street" , fieldError .getField ());
155
+ System .out .println (Arrays .asList (fieldError .getCodes ()));
156
+ System .out .println (fieldError .getDefaultMessage ());
157
+ }
158
+
159
+ @ Test
160
+ public void testSpringValidationWithErrorInSetElement () throws Exception {
161
+ LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean ();
162
+ validator .afterPropertiesSet ();
163
+ ValidPerson person = new ValidPerson ();
164
+ person .getAddressSet ().add (new ValidAddress ());
165
+ BeanPropertyBindingResult result = new BeanPropertyBindingResult (person , "person" );
166
+ validator .validate (person , result );
167
+ assertEquals (3 , result .getErrorCount ());
168
+ FieldError fieldError = result .getFieldError ("name" );
169
+ assertEquals ("name" , fieldError .getField ());
170
+ System .out .println (Arrays .asList (fieldError .getCodes ()));
171
+ System .out .println (fieldError .getDefaultMessage ());
172
+ fieldError = result .getFieldError ("address.street" );
173
+ assertEquals ("address.street" , fieldError .getField ());
174
+ System .out .println (Arrays .asList (fieldError .getCodes ()));
175
+ System .out .println (fieldError .getDefaultMessage ());
176
+ fieldError = result .getFieldError ("addressSet[].street" );
177
+ assertEquals ("addressSet[].street" , fieldError .getField ());
128
178
System .out .println (Arrays .asList (fieldError .getCodes ()));
129
179
System .out .println (fieldError .getDefaultMessage ());
130
180
}
@@ -139,6 +189,12 @@ public static class ValidPerson {
139
189
@ Valid
140
190
private ValidAddress address = new ValidAddress ();
141
191
192
+ @ Valid
193
+ private List <ValidAddress > addressList = new LinkedList <ValidAddress >();
194
+
195
+ @ Valid
196
+ private Set <ValidAddress > addressSet = new LinkedHashSet <ValidAddress >();
197
+
142
198
public String getName () {
143
199
return name ;
144
200
}
@@ -154,6 +210,22 @@ public ValidAddress getAddress() {
154
210
public void setAddress (ValidAddress address ) {
155
211
this .address = address ;
156
212
}
213
+
214
+ public List <ValidAddress > getAddressList () {
215
+ return addressList ;
216
+ }
217
+
218
+ public void setAddressList (List <ValidAddress > addressList ) {
219
+ this .addressList = addressList ;
220
+ }
221
+
222
+ public Set <ValidAddress > getAddressSet () {
223
+ return addressSet ;
224
+ }
225
+
226
+ public void setAddressSet (Set <ValidAddress > addressSet ) {
227
+ this .addressSet = addressSet ;
228
+ }
157
229
}
158
230
159
231
0 commit comments