11/*
2- * Copyright 2002-2019 the original author or authors.
2+ * Copyright 2002-2023 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
1919import org .junit .jupiter .api .Test ;
2020
2121import org .springframework .beans .testfixture .beans .TestBean ;
22- import org .springframework .lang .Nullable ;
2322
2423import static org .assertj .core .api .Assertions .assertThat ;
2524import static org .assertj .core .api .Assertions .assertThatIllegalArgumentException ;
3433 */
3534public class ValidationUtilsTests {
3635
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+
3740 @ Test
3841 public void testInvokeValidatorWithNullValidator () throws Exception {
3942 TestBean tb = new TestBean ();
@@ -46,14 +49,14 @@ public void testInvokeValidatorWithNullValidator() throws Exception {
4649 public void testInvokeValidatorWithNullErrors () throws Exception {
4750 TestBean tb = new TestBean ();
4851 assertThatIllegalArgumentException ().isThrownBy (() ->
49- ValidationUtils .invokeValidator (new EmptyValidator () , tb , null ));
52+ ValidationUtils .invokeValidator (emptyValidator , tb , null ));
5053 }
5154
5255 @ Test
5356 public void testInvokeValidatorSunnyDay () throws Exception {
5457 TestBean tb = new TestBean ();
5558 Errors errors = new BeanPropertyBindingResult (tb , "tb" );
56- ValidationUtils .invokeValidator (new EmptyValidator () , tb , errors );
59+ ValidationUtils .invokeValidator (emptyValidator , tb , errors );
5760 assertThat (errors .hasFieldErrors ("name" )).isTrue ();
5861 assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY" );
5962 }
@@ -62,24 +65,22 @@ public void testInvokeValidatorSunnyDay() throws Exception {
6265 public void testValidationUtilsSunnyDay () throws Exception {
6366 TestBean tb = new TestBean ("" );
6467
65- Validator testValidator = new EmptyValidator ();
6668 tb .setName (" " );
6769 Errors errors = new BeanPropertyBindingResult (tb , "tb" );
68- testValidator .validate (tb , errors );
70+ emptyValidator .validate (tb , errors );
6971 assertThat (errors .hasFieldErrors ("name" )).isFalse ();
7072
7173 tb .setName ("Roddy" );
7274 errors = new BeanPropertyBindingResult (tb , "tb" );
73- testValidator .validate (tb , errors );
75+ emptyValidator .validate (tb , errors );
7476 assertThat (errors .hasFieldErrors ("name" )).isFalse ();
7577 }
7678
7779 @ Test
7880 public void testValidationUtilsNull () throws Exception {
7981 TestBean tb = new TestBean ();
8082 Errors errors = new BeanPropertyBindingResult (tb , "tb" );
81- Validator testValidator = new EmptyValidator ();
82- testValidator .validate (tb , errors );
83+ emptyValidator .validate (tb , errors );
8384 assertThat (errors .hasFieldErrors ("name" )).isTrue ();
8485 assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY" );
8586 }
@@ -88,8 +89,7 @@ public void testValidationUtilsNull() throws Exception {
8889 public void testValidationUtilsEmpty () throws Exception {
8990 TestBean tb = new TestBean ("" );
9091 Errors errors = new BeanPropertyBindingResult (tb , "tb" );
91- Validator testValidator = new EmptyValidator ();
92- testValidator .validate (tb , errors );
92+ emptyValidator .validate (tb , errors );
9393 assertThat (errors .hasFieldErrors ("name" )).isTrue ();
9494 assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY" );
9595 }
@@ -115,32 +115,31 @@ public void testValidationUtilsEmptyVariants() {
115115 @ Test
116116 public void testValidationUtilsEmptyOrWhitespace () throws Exception {
117117 TestBean tb = new TestBean ();
118- Validator testValidator = new EmptyOrWhitespaceValidator ();
119118
120119 // Test null
121120 Errors errors = new BeanPropertyBindingResult (tb , "tb" );
122- testValidator .validate (tb , errors );
121+ emptyOrWhitespaceValidator .validate (tb , errors );
123122 assertThat (errors .hasFieldErrors ("name" )).isTrue ();
124123 assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY_OR_WHITESPACE" );
125124
126125 // Test empty String
127126 tb .setName ("" );
128127 errors = new BeanPropertyBindingResult (tb , "tb" );
129- testValidator .validate (tb , errors );
128+ emptyOrWhitespaceValidator .validate (tb , errors );
130129 assertThat (errors .hasFieldErrors ("name" )).isTrue ();
131130 assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY_OR_WHITESPACE" );
132131
133132 // Test whitespace String
134133 tb .setName (" " );
135134 errors = new BeanPropertyBindingResult (tb , "tb" );
136- testValidator .validate (tb , errors );
135+ emptyOrWhitespaceValidator .validate (tb , errors );
137136 assertThat (errors .hasFieldErrors ("name" )).isTrue ();
138137 assertThat (errors .getFieldError ("name" ).getCode ()).isEqualTo ("EMPTY_OR_WHITESPACE" );
139138
140139 // Test OK
141140 tb .setName ("Roddy" );
142141 errors = new BeanPropertyBindingResult (tb , "tb" );
143- testValidator .validate (tb , errors );
142+ emptyOrWhitespaceValidator .validate (tb , errors );
144143 assertThat (errors .hasFieldErrors ("name" )).isFalse ();
145144 }
146145
@@ -163,32 +162,4 @@ public void testValidationUtilsEmptyOrWhitespaceVariants() {
163162 assertThat (errors .getFieldError ("name" ).getDefaultMessage ()).isEqualTo ("msg" );
164163 }
165164
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-
194165}
0 commit comments