1   package org.seasar.cubby.validator;
2   
3   import java.util.Iterator;
4   
5   import junit.framework.TestCase;
6   
7   import org.seasar.cubby.validator.validators.MaxLengthValidator;
8   import org.seasar.cubby.validator.validators.NumberValidator;
9   import org.seasar.cubby.validator.validators.RangeValidator;
10  import org.seasar.cubby.validator.validators.RequiredValidator;
11  
12  public class DefaultValidationRulesTest extends TestCase {
13  
14  	public void testAddAndGetRules() throws Exception {
15  		DefaultValidationRules rules = new DefaultValidationRules();
16  		rules.add(new PropertyValidationRule("name", new RequiredValidator(), new MaxLengthValidator(10)));
17  		assertEquals(1, rules.getRules().size());
18  	}
19  
20  	public void testInitialize() throws Exception {
21  		ValidationRules rules = new DefaultValidationRules() {
22  			public void initialize() {
23  				add("name", new RequiredValidator(), new MaxLengthValidator(10));
24  				add("age", new NumberValidator(), new RangeValidator(0, 10));
25  			}
26  		};
27  		assertEquals(2, rules.getRules().size());
28  	}
29  
30  	public void testConstractor1() throws Exception {
31  		ValidationRules rules = new DefaultValidationRules() {
32  			public void initialize() {
33  				add("name", new RequiredValidator(), new MaxLengthValidator(10));
34  				add("age", new NumberValidator(), new RangeValidator(0, 10));
35  			}
36  		};
37  		assertEquals(2, rules.getRules().size());
38  		Iterator<ValidationRule> iter = rules.getRules().iterator();
39  		PropertyValidationRule rule = (PropertyValidationRule)iter.next();
40  		assertEquals("name", rule.getPropertyName());
41  		assertEquals("name", rule.getPropertyNameKey());
42  		rule = (PropertyValidationRule)iter.next();
43  		assertEquals("age", rule.getPropertyName());
44  		assertEquals("age", rule.getPropertyNameKey());
45  	}
46  
47  	public void testConstractor2() throws Exception {
48  		ValidationRules rules = new DefaultValidationRules("userProfile.") {
49  			public void initialize() {
50  				add("name", new RequiredValidator(), new MaxLengthValidator(10));
51  				add("age", new NumberValidator(), new RangeValidator(0, 10));
52  			}
53  		};
54  		assertEquals(2, rules.getRules().size());
55  		Iterator<ValidationRule> iter = rules.getRules().iterator();
56  		PropertyValidationRule rule = (PropertyValidationRule)iter.next();
57  		assertEquals("name", rule.getPropertyName());
58  		assertEquals("userProfile.name", rule.getPropertyNameKey());
59  		rule = (PropertyValidationRule)iter.next();
60  		assertEquals("age", rule.getPropertyName());
61  		assertEquals("userProfile.age", rule.getPropertyNameKey());
62  	}
63  }