1
2
3
4 package org.mod4j.runtime.validation;
5
6 import static org.junit.Assert.assertEquals;
7 import static org.junit.Assert.assertFalse;
8 import static org.junit.Assert.assertTrue;
9
10 import org.junit.Test;
11 import org.mod4j.runtime.validation.MaxValueValidator;
12 import org.springframework.validation.BindException;
13 import org.springframework.validation.Errors;
14 import org.springframework.validation.Validator;
15
16
17
18
19 public class MaxValueValidatorTest {
20
21 @Test
22 public void testSupportsSucceeds() {
23 Validator validator = new MaxValueValidator(ClassToTest.class, "", 0);
24 assertTrue(validator.supports(ClassToTest.class));
25 assertTrue(validator.supports(SubclassOfClassToTest.class));
26 }
27
28 @Test
29 public void testSupportsFails() {
30 Validator validator = new MaxValueValidator(ClassToTest.class, "", 0);
31 assertFalse(validator.supports(Object.class));
32 }
33
34 @Test
35 public void testIntHasErrors() {
36 ClassToTest objectToTest = new ClassToTest();
37 objectToTest.setIntProperty(4);
38 Errors errors = new BindException(objectToTest, "objectToTest");
39 Validator validator = new MaxValueValidator(ClassToTest.class, "intProperty", 3);
40 validator.validate(objectToTest, errors);
41 assertTrue(errors.hasErrors());
42 assertEquals("field.value.max", errors.getFieldError().getCode());
43 }
44
45 @Test
46 public void testIntIsValid() {
47 ClassToTest objectToTest = new ClassToTest();
48 objectToTest.setIntProperty(3);
49 Errors errors = new BindException(objectToTest, "objectToTest");
50 Validator validator = new MaxValueValidator(ClassToTest.class, "intProperty", 3);
51 validator.validate(objectToTest, errors);
52 assertFalse(errors.hasErrors());
53 }
54
55 @Test
56 public void testIntegerWithNull() {
57 ClassToTest objectToTest = new ClassToTest();
58 Errors errors = new BindException(objectToTest, "objectToTest");
59 Validator validator = new MaxValueValidator(ClassToTest.class, "integerProperty", 3);
60 validator.validate(objectToTest, errors);
61 assertFalse(errors.hasErrors());
62 }
63
64 @Test
65 public void testIntegerWithError() {
66 ClassToTest objectToTest = new ClassToTest();
67 objectToTest.setIntegerProperty(4);
68 Errors errors = new BindException(objectToTest, "objectToTest");
69 Validator validator = new MaxValueValidator(ClassToTest.class, "integerProperty", 3);
70 validator.validate(objectToTest, errors);
71 assertTrue(errors.hasErrors());
72 assertEquals("field.value.max", errors.getFieldError().getCode());
73 }
74
75 @Test
76 public void testIntegerIsValid() {
77 ClassToTest objectToTest = new ClassToTest();
78 objectToTest.setIntegerProperty(3);
79 Errors errors = new BindException(objectToTest, "objectToTest");
80 Validator validator = new MaxValueValidator(ClassToTest.class, "integerProperty", 3);
81 validator.validate(objectToTest, errors);
82 assertFalse(errors.hasErrors());
83 }
84
85 class ClassToTest {
86 private int intProperty;
87
88 private Integer integerProperty;
89
90 public int getIntProperty() {
91 return intProperty;
92 }
93
94 public void setIntProperty(int intProperty) {
95 this.intProperty = intProperty;
96 }
97
98 public Integer getIntegerProperty() {
99 return integerProperty;
100 }
101
102 public void setIntegerProperty(Integer integerProperty) {
103 this.integerProperty = integerProperty;
104 }
105 }
106
107 class SubclassOfClassToTest extends ClassToTest {
108 }
109 }