1
2
3
4
5
6
7
8
9
10
11
12
13 package net.sf.oval.test.integration.spring;
14
15 import junit.framework.TestCase;
16 import net.sf.oval.Validator;
17 import net.sf.oval.constraint.NotNegative;
18 import net.sf.oval.constraint.NotNull;
19 import net.sf.oval.integration.spring.SpringValidator;
20
21 import org.springframework.validation.BindException;
22
23
24
25
26 public class SpringValidatorTest extends TestCase
27 {
28 public static class Entity
29 {
30 @NotNull(errorCode = "E1", message = "M1")
31 protected String name;
32
33 @NotNegative(errorCode = "E2", message = "M2")
34 protected int age;
35
36 public int getAge()
37 {
38 return age;
39 }
40
41 public String getName()
42 {
43 return name;
44 }
45 }
46
47 public void testSpringValidator()
48 {
49 final SpringValidator v = new SpringValidator(new Validator());
50 final Entity e = new Entity();
51 {
52 e.name = null;
53 e.age = -1;
54 final BindException errors = new BindException(e, e.getClass().getName());
55 v.validate(e, errors);
56 assertEquals(2, errors.getErrorCount());
57 assertEquals(2, errors.getFieldErrorCount());
58 assertEquals(null, errors.getFieldError("name").getRejectedValue());
59 assertTrue(errors.getFieldError("name").getCodes()[0].startsWith("E1"));
60 assertEquals(-1, errors.getFieldError("age").getRejectedValue());
61 assertTrue(errors.getFieldError("age").getCodes()[0].startsWith("E2"));
62 }
63 {
64 final BindException errors = new BindException(e, e.getClass().getName());
65 e.name = "";
66 e.age = -1;
67 v.validate(e, errors);
68 assertEquals(1, errors.getErrorCount());
69 assertEquals(1, errors.getFieldErrorCount());
70 assertEquals(-1, errors.getFieldError("age").getRejectedValue());
71 assertTrue(errors.getFieldError("age").getCodes()[0].startsWith("E2"));
72 }
73 {
74 final BindException errors = new BindException(e, e.getClass().getName());
75 e.name = null;
76 e.age = 0;
77 v.validate(e, errors);
78 assertEquals(1, errors.getErrorCount());
79 assertEquals(1, errors.getFieldErrorCount());
80 assertEquals(null, errors.getFieldError("name").getRejectedValue());
81 assertTrue(errors.getFieldError("name").getCodes()[0].startsWith("E1"));
82 }
83 {
84 final BindException errors = new BindException(e, e.getClass().getName());
85 e.name = "";
86 e.age = 0;
87 v.validate(e, errors);
88 assertEquals(0, errors.getErrorCount());
89 assertEquals(0, errors.getFieldErrorCount());
90 }
91 }
92 }