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.MinValueValidator;
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 MinValueValidatorTest {
20
21 @Test
22 public void testSupportsSucceeds() {
23 Validator validator = new MinValueValidator(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 MinValueValidator(ClassToTest.class, "", 0);
31 assertFalse(validator.supports(Object.class));
32 }
33
34 @Test
35 public void testIntHasErrors() {
36 ClassToTest objectToTest = new ClassToTest();
37 Errors errors = new BindException(objectToTest, "objectToTest");
38 Validator validator = new MinValueValidator(ClassToTest.class, "intProperty", 3);
39 validator.validate(objectToTest, errors);
40 assertTrue(errors.hasErrors());
41 assertEquals("field.value.min", errors.getFieldError().getCode());
42 }
43
44 @Test
45 public void testIntIsValid() {
46 ClassToTest objectToTest = new ClassToTest();
47 objectToTest.setIntProperty(3);
48 Errors errors = new BindException(objectToTest, "objectToTest");
49 Validator validator = new MinValueValidator(ClassToTest.class, "intProperty", 3);
50 validator.validate(objectToTest, errors);
51 assertFalse(errors.hasErrors());
52 }
53
54 @Test
55 public void testIntegerWithNull() {
56 ClassToTest objectToTest = new ClassToTest();
57 Errors errors = new BindException(objectToTest, "objectToTest");
58 Validator validator = new MinValueValidator(ClassToTest.class, "integerProperty", 3);
59 validator.validate(objectToTest, errors);
60 assertFalse(errors.hasErrors());
61 }
62
63 @Test
64 public void testIntegerWithError() {
65 ClassToTest objectToTest = new ClassToTest();
66 objectToTest.setIntegerProperty(2);
67 Errors errors = new BindException(objectToTest, "objectToTest");
68 Validator validator = new MinValueValidator(ClassToTest.class, "integerProperty", 3);
69 validator.validate(objectToTest, errors);
70 assertTrue(errors.hasErrors());
71 assertEquals("field.value.min", errors.getFieldError().getCode());
72 }
73
74 @Test
75 public void testIntegerIsValid() {
76 ClassToTest objectToTest = new ClassToTest();
77 objectToTest.setIntegerProperty(3);
78 Errors errors = new BindException(objectToTest, "objectToTest");
79 Validator validator = new MinValueValidator(ClassToTest.class, "integerProperty", 3);
80 validator.validate(objectToTest, errors);
81 assertFalse(errors.hasErrors());
82 }
83
84 class ClassToTest {
85 private int intProperty;
86
87 private Integer integerProperty;
88
89 public int getIntProperty() {
90 return intProperty;
91 }
92
93 public void setIntProperty(int intProperty) {
94 this.intProperty = intProperty;
95 }
96
97 public Integer getIntegerProperty() {
98 return integerProperty;
99 }
100
101 public void setIntegerProperty(Integer integerProperty) {
102 this.integerProperty = integerProperty;
103 }
104 }
105
106 class SubclassOfClassToTest extends ClassToTest {
107 }
108 }