77 */
88package org .seedstack .validation .internal ;
99
10- import org .seedstack .validation .ValidationException ;
11- import org .seedstack .validation .ValidationService ;
12- import org .seedstack .validation .internal .pojo .Pojo ;
13- import org .seedstack .validation .internal .pojo .PojoWithDeepValidation ;
1410import org .assertj .core .api .Assertions ;
1511import org .junit .Test ;
1612import org .junit .runner .RunWith ;
1713import org .seedstack .seed .it .SeedITRunner ;
14+ import org .seedstack .validation .ValidationException ;
15+ import org .seedstack .validation .ValidationService ;
16+ import org .seedstack .validation .internal .pojo .Bean ;
17+ import org .seedstack .validation .internal .pojo .MyImpl ;
18+ import org .seedstack .validation .internal .pojo .Pojo ;
19+ import org .seedstack .validation .internal .pojo .PojoWithDeepValidation ;
1820
1921import javax .inject .Inject ;
2022import javax .validation .ConstraintViolation ;
@@ -29,35 +31,60 @@ public class ValidationServiceIT {
2931 ValidationService validationService ;
3032
3133 @ Test
32- public void validation_service_is_well_injected () {
34+ public void validationServiceIsInjected () {
3335 assertThat (validationService ).isNotNull ();
3436 }
3537
3638 @ Test
37- public void validation_service_work_nominally () {
39+ public void throwsExceptionOnInvalidPojo () {
3840 try {
3941 validationService .staticallyHandle (new Pojo (Pojo .State .INVALID ));
40-
4142 Assertions .failBecauseExceptionWasNotThrown (ValidationException .class );
4243 } catch (ValidationException validationException ) {
43- validationException .printStackTrace ();
44- Set <ConstraintViolation <?>> constraintViolations = validationException .get (ValidationService .JAVAX_VALIDATION_CONSTRAINT_VIOLATIONS );
45-
46- assertThat (constraintViolations .size ()).isEqualTo (3 );
44+ expectViolations (validationException , 3 );
4745 }
4846 }
4947
48+ private void expectViolations (ValidationException validationException , int expected ) {
49+ Set <ConstraintViolation <?>> constraintViolations = validationException
50+ .get (ValidationService .JAVAX_VALIDATION_CONSTRAINT_VIOLATIONS );
51+ assertThat (constraintViolations ).hasSize (expected );
52+ }
53+
5054 @ Test
51- public void validation_on_cascade () {
55+ public void doNothingOnValidPojo () {
56+ validationService .staticallyHandle (new Pojo (Pojo .State .VALID ));
57+ }
58+
59+ @ Test
60+ public void throwsExceptionOnDeepValidation () {
5261 try {
5362 validationService .staticallyHandle (new PojoWithDeepValidation ());
63+ Assertions .failBecauseExceptionWasNotThrown (ValidationException .class );
64+ } catch (ValidationException validationException ) {
65+ expectViolations (validationException , 4 );
66+ }
67+ }
5468
69+ @ Test
70+ public void validationShouldWorkOnInterface () {
71+ try {
72+ validationService .staticallyHandle (new MyImpl ());
5573 Assertions .failBecauseExceptionWasNotThrown (ValidationException .class );
5674 } catch (ValidationException validationException ) {
57- validationException .printStackTrace ();
58- Set <ConstraintViolation <?>> constraintViolations = validationException .get (ValidationService .JAVAX_VALIDATION_CONSTRAINT_VIOLATIONS );
75+ expectViolations (validationException , 1 );
76+ }
77+ }
5978
60- assertThat (constraintViolations .size ()).isEqualTo (4 );
79+ @ Test
80+ public void validationShouldWorkOnGetter () {
81+ try {
82+ Bean candidate = new Bean ();
83+ candidate .setHour (25 );
84+ validationService .staticallyHandle (candidate );
85+ Assertions .failBecauseExceptionWasNotThrown (ValidationException .class );
86+ } catch (ValidationException validationException ) {
87+ expectViolations (validationException , 1 );
6188 }
6289 }
6390}
0 commit comments