View Javadoc

1   /*******************************************************************************
2    * Portions created by Sebastian Thomschke are copyright (c) 2005-2010 Sebastian
3    * Thomschke.
4    * 
5    * All Rights Reserved. This program and the accompanying materials
6    * are made available under the terms of the Eclipse Public License v1.0
7    * which accompanies this distribution, and is available at
8    * http://www.eclipse.org/legal/epl-v10.html
9    * 
10   * Contributors:
11   *     Sebastian Thomschke - initial implementation.
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   * @author Sebastian Thomschke
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  }