KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > validator > FieldTest


1 /*
2  * $Id: FieldTest.java 155434 2005-02-26 13:16:41Z dirkv $
3  * $Rev$
4  * $Date: 2005-02-26 05:16:41 -0800 (Sat, 26 Feb 2005) $
5  *
6  * ====================================================================
7  * Copyright 2001-2005 The Apache Software Foundation
8  *
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */

21
22 package org.apache.commons.validator;
23
24 import junit.framework.TestCase;
25
26 /**
27  * Test <code>Field</code> objects.
28  */

29 public class FieldTest extends TestCase {
30
31
32     protected Field field;
33
34     /**
35      * FieldTest constructor.
36      */

37     public FieldTest() {
38         super();
39     }
40
41     /**
42      * FieldTest constructor.
43      * @param name
44      */

45     public FieldTest(String JavaDoc name) {
46         super(name);
47     }
48
49     /**
50      * Test setup
51      */

52     public void setUp() {
53         field = new Field();
54     }
55
56     /**
57      * Test clean up
58      */

59     public void tearDown() {
60         field = null;
61     }
62
63     /**
64      * test Field with no arguments
65      */

66     public void testEmptyArgs() {
67
68         assertEquals("Empty Args(1) ", 0, field.getArgs("required").length);
69
70     }
71     /**
72      * test Field with only 'default' arguments, no positions specified.
73      */

74     public void testDefaultPositionImplied() {
75
76         field.addArg(createArg("default-position-0"));
77         field.addArg(createArg("default-position-1"));
78         field.addArg(createArg("default-position-2"));
79
80         assertEquals("testDefaultPositionImplied(1) ", 3, field.getArgs("required").length);
81         assertEquals("testDefaultPositionImplied(2) ", "default-position-0", field.getArg("required", 0).getKey());
82         assertEquals("testDefaultPositionImplied(3) ", "default-position-1", field.getArg("required", 1).getKey());
83         assertEquals("testDefaultPositionImplied(4) ", "default-position-2", field.getArg("required", 2).getKey());
84
85     }
86
87     /**
88      * test Field with only 'default' arguments, positions specified.
89      */

90     public void testDefaultUsingPositions() {
91
92         field.addArg(createArg("default-position-1", 1));
93         field.addArg(createArg("default-position-0", 0));
94         field.addArg(createArg("default-position-2", 2));
95
96         assertEquals("testDefaultUsingPositions(1) ", 3, field.getArgs("required").length);
97         assertEquals("testDefaultUsingPositions(2) ", "default-position-0", field.getArg("required", 0).getKey());
98         assertEquals("testDefaultUsingPositions(3) ", "default-position-1", field.getArg("required", 1).getKey());
99         assertEquals("testDefaultUsingPositions(4) ", "default-position-2", field.getArg("required", 2).getKey());
100
101     }
102
103     /**
104      * test Field with only 'default' arguments, position specified for one argument
105      */

106     public void testDefaultOnePosition() {
107
108         field.addArg(createArg("default-position-0"));
109         field.addArg(createArg("default-position-2", 2));
110         field.addArg(createArg("default-position-3"));
111
112         assertEquals("testDefaultOnePosition(1) ", 4, field.getArgs("required").length);
113         assertEquals("testDefaultOnePosition(2) ", "default-position-0", field.getArg("required", 0).getKey());
114         assertNull("testDefaultOnePosition(3) ", field.getArg("required", 1));
115         assertEquals("testDefaultOnePosition(4) ", "default-position-2", field.getArg("required", 2).getKey());
116         assertEquals("testDefaultOnePosition(5) ", "default-position-3", field.getArg("required", 3).getKey());
117
118     }
119
120     /**
121      * test Field with only 'default' arguments, some position specified.
122      */

123     public void testDefaultSomePositions() {
124
125         field.addArg(createArg("default-position-0"));
126         field.addArg(createArg("default-position-2", 2));
127         field.addArg(createArg("default-position-3"));
128         field.addArg(createArg("default-position-1", 1));
129
130         assertEquals("testDefaultSomePositions(1) ", 4, field.getArgs("required").length);
131         assertEquals("testDefaultSomePositions(2) ", "default-position-0", field.getArg("required", 0).getKey());
132         assertEquals("testDefaultSomePositions(3) ", "default-position-1", field.getArg("required", 1).getKey());
133         assertEquals("testDefaultSomePositions(4) ", "default-position-2", field.getArg("required", 2).getKey());
134         assertEquals("testDefaultSomePositions(5) ", "default-position-3", field.getArg("required", 3).getKey());
135
136     }
137
138     /**
139      * test Field with a 'default' argument overriden using 'position' property
140      */

141     public void testOverrideUsingPositionA() {
142
143         field.addArg(createArg("default-position-0"));
144         field.addArg(createArg("default-position-1"));
145         field.addArg(createArg("default-position-2"));
146         field.addArg(createArg("required-position-1", "required", 1));
147
148         // use 'required' as name
149
assertEquals("testOverrideUsingPositionA(1) ", 3, field.getArgs("required").length);
150         assertEquals("testOverrideUsingPositionA(2) ", "required-position-1", field.getArg("required", 1).getKey());
151
152         // use 'mask' as name
153
assertEquals("testOverrideUsingPositionA(3) ", 3, field.getArgs("mask").length);
154         assertEquals("testOverrideUsingPositionA(4) ", "default-position-1", field.getArg("mask", 1).getKey());
155
156         // Get Default
157
assertEquals("testOverrideUsingPositionA(5) ", "default-position-1", field.getArg(1).getKey());
158
159     }
160
161     /**
162      * test Field with a 'default' argument overriden using 'position' property
163      */

164     public void testOverrideUsingPositionB() {
165
166         field.addArg(createArg("required-position-3", "required", 3));
167         field.addArg(createArg("required-position-1", "required", 1));
168         field.addArg(createArg("default-position-0"));
169         field.addArg(createArg("default-position-1"));
170         field.addArg(createArg("default-position-2"));
171
172         // use 'required' as name
173
assertEquals("testOverrideUsingPositionB(1) ", 4, field.getArgs("required").length);
174         assertEquals("testOverrideUsingPositionB(2) ", "default-position-0", field.getArg("required", 0).getKey());
175         assertEquals("testOverrideUsingPositionB(3) ", "required-position-1", field.getArg("required", 1).getKey());
176         assertEquals("testOverrideUsingPositionB(4) ", "default-position-2", field.getArg("required", 2).getKey());
177         assertEquals("testOverrideUsingPositionB(5) ", "required-position-3", field.getArg("required", 3).getKey());
178
179         // use 'mask' as name
180
assertEquals("testOverrideUsingPositionB(6) ", 4, field.getArgs("mask").length);
181         assertEquals("testOverrideUsingPositionB(6) ", "default-position-0", field.getArg("mask", 0).getKey());
182         assertEquals("testOverrideUsingPositionB(7) ", "default-position-1", field.getArg("mask", 1).getKey());
183         assertEquals("testOverrideUsingPositionB(8) ", "default-position-2", field.getArg("mask", 2).getKey());
184         assertNull("testOverrideUsingPositionB(9) ", field.getArg("mask", 3));
185
186     }
187
188     /**
189      * test Field with a 'default' argument overriden without positions specified.
190      */

191     public void testOverridePositionImplied() {
192
193         field.addArg(createArg("default-position-0"));
194         field.addArg(createArg("required-position-1", "required"));
195         field.addArg(createArg("required-position-2", "required"));
196         field.addArg(createArg("mask-position-1", "mask"));
197
198         // use 'required' as name
199
assertEquals("testOverridePositionImplied(1) ", 3, field.getArgs("required").length);
200         assertEquals("testOverridePositionImplied(2) ", "default-position-0", field.getArg("required", 0).getKey());
201         assertEquals("testOverridePositionImplied(3) ", "required-position-1", field.getArg("required", 1).getKey());
202         assertEquals("testOverridePositionImplied(4) ", "required-position-2", field.getArg("required", 2).getKey());
203
204         // use 'mask' as name
205
assertEquals("testOverridePositionImplied(5) ", 3, field.getArgs("mask").length);
206         assertEquals("testOverridePositionImplied(6) ", "default-position-0", field.getArg("mask", 0).getKey());
207         assertEquals("testOverridePositionImplied(7) ", "mask-position-1", field.getArg("mask", 1).getKey());
208         assertNull("testOverridePositionImplied(8) ", field.getArg("mask", 2));
209
210         // Get Defaults
211
assertEquals("testOverridePositionImplied(9) ", "default-position-0", field.getArg(0).getKey());
212         assertNull("testOverridePositionImplied(10) ", field.getArg(1));
213         assertNull("testOverridePositionImplied(11) ", field.getArg(2));
214
215     }
216
217     /**
218      * test Field with a 'default' argument overriden with some positions specified
219      */

220     public void testOverrideSomePosition() {
221
222         field.addArg(createArg("default-position-0"));
223         field.addArg(createArg("default-position-1"));
224         field.addArg(createArg("default-position-2"));
225         field.addArg(createArg("required-position-1", "required", 1));
226         field.addArg(createArg("required-position-2", "required"));
227         field.addArg(createArg("mask-position-3", "mask"));
228
229         // use 'required' as name
230
assertEquals("testOverrideSomePosition(1) ", 4, field.getArgs("required").length);
231         assertEquals("testOverrideSomePosition(2) ", "default-position-0", field.getArg("required", 0).getKey());
232         assertEquals("testOverrideSomePosition(3) ", "required-position-1", field.getArg("required", 1).getKey());
233         assertEquals("testOverrideSomePosition(4) ", "required-position-2", field.getArg("required", 2).getKey());
234         assertNull("testOverrideSomePosition(5) ", field.getArg("required", 3));
235
236         // use 'mask' as name
237
assertEquals("testOverrideSomePosition(6) ", 4, field.getArgs("mask").length);
238         assertEquals("testOverrideSomePosition(7) ", "default-position-0", field.getArg("mask", 0).getKey());
239         assertEquals("testOverrideSomePosition(8) ", "default-position-1", field.getArg("mask", 1).getKey());
240         assertEquals("testOverrideSomePosition(9) ", "default-position-2", field.getArg("mask", 2).getKey());
241         assertEquals("testOverrideSomePosition(10) ", "mask-position-3", field.getArg("mask", 3).getKey());
242
243         // Get Defaults
244
assertEquals("testOverrideSomePosition(11) ", "default-position-0", field.getArg(0).getKey());
245         assertEquals("testOverrideSomePosition(12) ", "default-position-1", field.getArg(1).getKey());
246         assertEquals("testOverrideSomePosition(13) ", "default-position-2", field.getArg(2).getKey());
247         assertNull("testOverrideSomePosition(14) ", field.getArg(3));
248
249     }
250
251     /**
252      * Convenience Method - create argument (no name or position specified)
253      */

254     private Arg createArg(String JavaDoc key) {
255         Arg arg = new Arg();
256         arg.setKey(key);
257         return arg;
258     }
259
260     /**
261      * Convenience Method - create argument (no name, position specified)
262      */

263     private Arg createArg(String JavaDoc key, int position) {
264         Arg arg = createArg(key);
265         arg.setPosition(position);
266         return arg;
267     }
268
269     /**
270      * Convenience Method - create argument (name specified, no position)
271      */

272     private Arg createArg(String JavaDoc key, String JavaDoc name) {
273         Arg arg = createArg(key);
274         arg.setName(name);
275         return arg;
276     }
277
278     /**
279      * Convenience Method - create argument (name & position specified)
280      */

281     private Arg createArg(String JavaDoc key, String JavaDoc name, int position) {
282         Arg arg = createArg(key, name);
283         arg.setPosition(position);
284         return arg;
285     }
286
287 }
288
Popular Tags