1
1
/*
2
- * Copyright 2002-2019 the original author or authors.
2
+ * Copyright 2002-2023 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
19
19
import org .junit .jupiter .api .Test ;
20
20
21
21
import org .springframework .beans .testfixture .beans .TestBean ;
22
- import org .springframework .lang .Nullable ;
23
22
24
23
import static org .assertj .core .api .Assertions .assertThat ;
25
24
import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
34
33
*/
35
34
public class ValidationUtilsTests {
36
35
36
+ Validator emptyValidator = Validator .of (TestBean .class , (testBean , errors ) -> ValidationUtils .rejectIfEmpty (errors , "name" , "EMPTY" , "You must enter a name!" ));
37
+
38
+ Validator emptyOrWhitespaceValidator = Validator .of (TestBean .class , (testBean , errors ) -> ValidationUtils .rejectIfEmptyOrWhitespace (errors , "name" , "EMPTY_OR_WHITESPACE" , "You must enter a name!" ));
39
+
37
40
@ Test
38
41
public void testInvokeValidatorWithNullValidator () throws Exception {
39
42
TestBean tb = new TestBean ();
@@ -46,14 +49,14 @@ public void testInvokeValidatorWithNullValidator() throws Exception {
46
49
public void testInvokeValidatorWithNullErrors () throws Exception {
47
50
TestBean tb = new TestBean ();
48
51
assertThatIllegalArgumentException ().isThrownBy (() ->
49
- ValidationUtils .invokeValidator (new EmptyValidator () , tb , null ));
52
+ ValidationUtils .invokeValidator (emptyValidator , tb , null ));
50
53
}
51
54
52
55
@ Test
53
56
public void testInvokeValidatorSunnyDay () throws Exception {
54
57
TestBean tb = new TestBean ();
55
58
Errors errors = new BeanPropertyBindingResult (tb , "tb" );
56
- ValidationUtils .invokeValidator (new EmptyValidator () , tb , errors );
59
+ ValidationUtils .invokeValidator (emptyValidator , tb , errors );
57
60
assertThat (errors .hasFieldErrors ("name" )).isTrue ();
58
61
assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY" );
59
62
}
@@ -62,24 +65,22 @@ public void testInvokeValidatorSunnyDay() throws Exception {
62
65
public void testValidationUtilsSunnyDay () throws Exception {
63
66
TestBean tb = new TestBean ("" );
64
67
65
- Validator testValidator = new EmptyValidator ();
66
68
tb .setName (" " );
67
69
Errors errors = new BeanPropertyBindingResult (tb , "tb" );
68
- testValidator .validate (tb , errors );
70
+ emptyValidator .validate (tb , errors );
69
71
assertThat (errors .hasFieldErrors ("name" )).isFalse ();
70
72
71
73
tb .setName ("Roddy" );
72
74
errors = new BeanPropertyBindingResult (tb , "tb" );
73
- testValidator .validate (tb , errors );
75
+ emptyValidator .validate (tb , errors );
74
76
assertThat (errors .hasFieldErrors ("name" )).isFalse ();
75
77
}
76
78
77
79
@ Test
78
80
public void testValidationUtilsNull () throws Exception {
79
81
TestBean tb = new TestBean ();
80
82
Errors errors = new BeanPropertyBindingResult (tb , "tb" );
81
- Validator testValidator = new EmptyValidator ();
82
- testValidator .validate (tb , errors );
83
+ emptyValidator .validate (tb , errors );
83
84
assertThat (errors .hasFieldErrors ("name" )).isTrue ();
84
85
assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY" );
85
86
}
@@ -88,8 +89,7 @@ public void testValidationUtilsNull() throws Exception {
88
89
public void testValidationUtilsEmpty () throws Exception {
89
90
TestBean tb = new TestBean ("" );
90
91
Errors errors = new BeanPropertyBindingResult (tb , "tb" );
91
- Validator testValidator = new EmptyValidator ();
92
- testValidator .validate (tb , errors );
92
+ emptyValidator .validate (tb , errors );
93
93
assertThat (errors .hasFieldErrors ("name" )).isTrue ();
94
94
assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY" );
95
95
}
@@ -115,32 +115,31 @@ public void testValidationUtilsEmptyVariants() {
115
115
@ Test
116
116
public void testValidationUtilsEmptyOrWhitespace () throws Exception {
117
117
TestBean tb = new TestBean ();
118
- Validator testValidator = new EmptyOrWhitespaceValidator ();
119
118
120
119
// Test null
121
120
Errors errors = new BeanPropertyBindingResult (tb , "tb" );
122
- testValidator .validate (tb , errors );
121
+ emptyOrWhitespaceValidator .validate (tb , errors );
123
122
assertThat (errors .hasFieldErrors ("name" )).isTrue ();
124
123
assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY_OR_WHITESPACE" );
125
124
126
125
// Test empty String
127
126
tb .setName ("" );
128
127
errors = new BeanPropertyBindingResult (tb , "tb" );
129
- testValidator .validate (tb , errors );
128
+ emptyOrWhitespaceValidator .validate (tb , errors );
130
129
assertThat (errors .hasFieldErrors ("name" )).isTrue ();
131
130
assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY_OR_WHITESPACE" );
132
131
133
132
// Test whitespace String
134
133
tb .setName (" " );
135
134
errors = new BeanPropertyBindingResult (tb , "tb" );
136
- testValidator .validate (tb , errors );
135
+ emptyOrWhitespaceValidator .validate (tb , errors );
137
136
assertThat (errors .hasFieldErrors ("name" )).isTrue ();
138
137
assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY_OR_WHITESPACE" );
139
138
140
139
// Test OK
141
140
tb .setName ("Roddy" );
142
141
errors = new BeanPropertyBindingResult (tb , "tb" );
143
- testValidator .validate (tb , errors );
142
+ emptyOrWhitespaceValidator .validate (tb , errors );
144
143
assertThat (errors .hasFieldErrors ("name" )).isFalse ();
145
144
}
146
145
@@ -163,32 +162,4 @@ public void testValidationUtilsEmptyOrWhitespaceVariants() {
163
162
assertThat (errors .getFieldError ("name" ).getDefaultMessage ()).isEqualTo ("msg" );
164
163
}
165
164
166
-
167
- private static class EmptyValidator implements Validator {
168
-
169
- @ Override
170
- public boolean supports (Class <?> clazz ) {
171
- return TestBean .class .isAssignableFrom (clazz );
172
- }
173
-
174
- @ Override
175
- public void validate (@ Nullable Object obj , Errors errors ) {
176
- ValidationUtils .rejectIfEmpty (errors , "name" , "EMPTY" , "You must enter a name!" );
177
- }
178
- }
179
-
180
-
181
- private static class EmptyOrWhitespaceValidator implements Validator {
182
-
183
- @ Override
184
- public boolean supports (Class <?> clazz ) {
185
- return TestBean .class .isAssignableFrom (clazz );
186
- }
187
-
188
- @ Override
189
- public void validate (@ Nullable Object obj , Errors errors ) {
190
- ValidationUtils .rejectIfEmptyOrWhitespace (errors , "name" , "EMPTY_OR_WHITESPACE" , "You must enter a name!" );
191
- }
192
- }
193
-
194
165
}
0 commit comments