1 package org.mod4j.runtime.validation;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertTrue;
6
7 import org.junit.Test;
8 import org.mod4j.runtime.validation.NotEmptyOrWhitespaceValidator;
9 import org.springframework.validation.BindException;
10 import org.springframework.validation.Errors;
11 import org.springframework.validation.Validator;
12
13
14
15
16 public class NotEmptyOrWhitespaceValidatorTest {
17
18 @Test
19 public void testSupports() {
20 Validator validator = new NotEmptyOrWhitespaceValidator(ClassToTest.class, "stringProperty");
21 assertTrue(validator.supports(ClassToTest.class));
22 assertFalse(validator.supports(String.class));
23 }
24
25 @Test
26 public void testValidateSucces() {
27 Object object = new ClassToTest("123");
28 Validator validator = new NotEmptyOrWhitespaceValidator(ClassToTest.class, "stringProperty");
29 Errors errors = new BindException(object, "object");
30 validator.validate(object, errors);
31 assertFalse(errors.hasErrors());
32 }
33
34 @Test
35 public void testValidateNull() {
36 Object object = new ClassToTest(null);
37 Validator validator = new NotEmptyOrWhitespaceValidator(ClassToTest.class, "stringProperty");
38 Errors errors = new BindException(object, "object");
39 validator.validate(object, errors);
40 assertFalse(errors.hasErrors());
41 }
42
43 @Test
44 public void testValidateEmpty() {
45 Object object = new ClassToTest("");
46 Validator validator = new NotEmptyOrWhitespaceValidator(ClassToTest.class, "stringProperty");
47 Errors errors = new BindException(object, "object");
48 validator.validate(object, errors);
49 assertTrue(errors.hasErrors());
50 assertEquals("field.required", errors.getFieldError().getCode());
51 }
52
53 @Test
54 public void testValidateWhitespace() {
55 Object object = new ClassToTest(" ");
56 Validator validator = new NotEmptyOrWhitespaceValidator(ClassToTest.class, "stringProperty");
57 Errors errors = new BindException(object, "object");
58 validator.validate(object, errors);
59 assertTrue(errors.hasErrors());
60 assertEquals("field.required", errors.getFieldError().getCode());
61 }
62
63 class ClassToTest {
64 private String stringProperty;
65
66 public ClassToTest(String value) {
67 this.stringProperty = value;
68 }
69
70 public String getStringProperty() {
71 return stringProperty;
72 }
73
74 public void setStringProperty(String stringProperty) {
75 this.stringProperty = stringProperty;
76 }
77 }
78
79 class SubclassOfClassToTest extends ClassToTest {
80 public SubclassOfClassToTest(String value) {
81 super(value);
82 }
83 }
84 }