1   /*
2    * Copyright 2004-2008 the Seasar Foundation and the Others.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13   * either express or implied. See the License for the specific language
14   * governing permissions and limitations under the License.
15   */
16  package org.seasar.cubby.validator;
17  
18  import java.util.Iterator;
19  
20  import junit.framework.TestCase;
21  
22  import org.seasar.cubby.validator.validators.MaxLengthValidator;
23  import org.seasar.cubby.validator.validators.NumberValidator;
24  import org.seasar.cubby.validator.validators.RangeValidator;
25  import org.seasar.cubby.validator.validators.RequiredValidator;
26  
27  public class DefaultValidationRulesTest extends TestCase {
28  
29  	public void testAddAndGetRules() throws Exception {
30  		DefaultValidationRules rules = new DefaultValidationRules();
31  		rules.add(new FieldValidationRule("name", new RequiredValidator(),
32  				new MaxLengthValidator(10)));
33  		assertEquals(1, rules.getRules().size());
34  	}
35  
36  	public void testInitialize() throws Exception {
37  		ValidationRules rules = new DefaultValidationRules() {
38  			public void initialize() {
39  				add("name", new RequiredValidator(), new MaxLengthValidator(10));
40  				add("age", new NumberValidator(), new RangeValidator(0, 10));
41  			}
42  		};
43  		assertEquals(2, rules.getRules().size());
44  	}
45  
46  	public void testConstractor1() throws Exception {
47  		ValidationRules rules = new DefaultValidationRules() {
48  			public void initialize() {
49  				add("name", new RequiredValidator(), new MaxLengthValidator(10));
50  				add("age", new NumberValidator(), new RangeValidator(0, 10));
51  			}
52  		};
53  		assertEquals(2, rules.getRules().size());
54  		Iterator<ValidationRule> iter = rules.getRules().iterator();
55  		FieldValidationRule rule = (FieldValidationRule) iter.next();
56  		assertEquals("name", rule.getFieldName());
57  		assertEquals("name", rule.getFieldNameKey());
58  		rule = (FieldValidationRule) iter.next();
59  		assertEquals("age", rule.getFieldName());
60  		assertEquals("age", rule.getFieldNameKey());
61  	}
62  
63  	public void testConstractor2() throws Exception {
64  		ValidationRules rules = new DefaultValidationRules("userProfile.") {
65  			public void initialize() {
66  				add("name", new RequiredValidator(), new MaxLengthValidator(10));
67  				add("age", new NumberValidator(), new RangeValidator(0, 10));
68  			}
69  		};
70  		assertEquals(2, rules.getRules().size());
71  		Iterator<ValidationRule> iter = rules.getRules().iterator();
72  		FieldValidationRule rule = (FieldValidationRule) iter.next();
73  		assertEquals("name", rule.getFieldName());
74  		assertEquals("userProfile.name", rule.getFieldNameKey());
75  		rule = (FieldValidationRule) iter.next();
76  		assertEquals("age", rule.getFieldName());
77  		assertEquals("userProfile.age", rule.getFieldNameKey());
78  	}
79  }