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.RegExpValidator;
12 import org.springframework.validation.BindException;
13 import org.springframework.validation.Errors;
14 import org.springframework.validation.Validator;
15
16
17
18
19
20 public class RegExpValidatorTest {
21
22 public static final String EMAILADDRESS_REGEXP = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}$";
23
24 @Test
25 public void testSupports() {
26 Validator validator = new RegExpValidator(ClassToTest.class, "stringProperty", EMAILADDRESS_REGEXP);
27 assertTrue(validator.supports(ClassToTest.class));
28 assertFalse(validator.supports(String.class));
29 }
30
31 @Test
32 public void testValidateSucces() {
33 Object object = new ClassToTest("aaa.bbb@ccc.dd");
34 Validator validator = new RegExpValidator(ClassToTest.class, "stringProperty", EMAILADDRESS_REGEXP);
35 Errors errors = new BindException(object, "object");
36 validator.validate(object, errors);
37 assertFalse(errors.hasErrors());
38 }
39
40 @Test
41 public void testValidateFailure() {
42 Object object = new ClassToTest("aaa@bbb");
43 Validator validator = new RegExpValidator(ClassToTest.class, "stringProperty", EMAILADDRESS_REGEXP);
44 Errors errors = new BindException(object, "object");
45 validator.validate(object, errors);
46 assertTrue(errors.hasErrors());
47 assertEquals("field.regexp.match", errors.getFieldError().getCode());
48 }
49
50 @Test
51 public void testValidateNull() {
52 Object object = new ClassToTest(null);
53 Validator validator = new RegExpValidator(ClassToTest.class, "stringProperty", EMAILADDRESS_REGEXP);
54 Errors errors = new BindException(object, "object");
55 validator.validate(object, errors);
56 assertFalse(errors.hasErrors());
57 }
58
59 class ClassToTest {
60 private String stringProperty;
61
62 public ClassToTest(String value) {
63 this.stringProperty = value;
64 }
65
66 public String getStringProperty() {
67 return stringProperty;
68 }
69
70 public void setStringProperty(String stringProperty) {
71 this.stringProperty = stringProperty;
72 }
73 }
74
75 }