KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > inversoft > util > typevalidator > test > StringTypeValidatorTest


1 /*
2  * Copyright (c) 2003, Inversoft
3  *
4  * This software is distribuable under the GNU Lesser General Public License.
5  * For more information visit gnu.org.
6  */

7 package com.inversoft.util.typevalidator.test;
8
9
10 import java.util.HashMap JavaDoc;
11 import java.util.Map JavaDoc;
12
13 import junit.framework.TestCase;
14
15 import com.inversoft.error.BasicError;
16 import com.inversoft.util.typevalidator.StringTypeValidator;
17
18
19 /**
20  * <p>
21  * This class is the test case for the String type validator.
22  * </p>
23  *
24  * @author Brian Pontarelli
25  */

26 public class StringTypeValidatorTest extends TestCase {
27
28     /**
29      * Constructs a new <code>StringTypeValidatorTest</code>
30      *
31      * @param name The name of the test currently being run
32      */

33     public StringTypeValidatorTest(String JavaDoc name) {
34         super(name);
35     }
36
37
38     /**
39      * Tests a simple String usage that should not fail.
40      */

41     public void testString() {
42         String JavaDoc str = "testString";
43         StringTypeValidator validator = new StringTypeValidator();
44
45         BasicError error = validator.validate(str, null, "fail", null);
46         assertNull(error);
47     }
48
49     /**
50      * Tests an Object being converted to a String.
51      */

52     public void testStringObject() {
53         Map JavaDoc map = new HashMap JavaDoc();
54         StringTypeValidator validator = new StringTypeValidator();
55
56         BasicError error = validator.validate(map, null, "fail", null);
57         assertNull(error);
58     }
59
60     /**
61      * Tests the min and max do not fail if the String is in bounds.
62      */

63     public void testStringMinMax() {
64         String JavaDoc str = "1";
65         StringTypeValidator validator = new StringTypeValidator();
66
67         Map JavaDoc params = new HashMap JavaDoc();
68         params.put("min", new Double JavaDoc(1));
69         params.put("max", new Double JavaDoc(1));
70
71         BasicError error = validator.validate(str, params, "fail", null);
72         assertNull(error);
73     }
74
75     /**
76      * Tests that the min and max don't fail if the length is in bounds
77      */

78     public void testMinMax() {
79         String JavaDoc str = "12";
80         StringTypeValidator validator = new StringTypeValidator();
81
82         Map JavaDoc params = new HashMap JavaDoc();
83         params.put("min", new Double JavaDoc(2));
84         params.put("max", new Double JavaDoc(3));
85
86         BasicError error = validator.validate(str, params, "fail", null);
87         assertNull(error);
88
89         str = "123";
90         params = new HashMap JavaDoc();
91         params.put("min", new Double JavaDoc(2));
92         params.put("max", new Double JavaDoc(3));
93
94         error = validator.validate(str, params, "fail", null);
95         assertNull(error);
96     }
97
98     /**
99      * Tests that the min and max do fail if the String is out of bounds.
100      */

101     public void testStringMinMaxFailures() {
102         String JavaDoc str = "1";
103         StringTypeValidator validator = new StringTypeValidator();
104
105         Map JavaDoc params = new HashMap JavaDoc();
106         params.put("min", new Double JavaDoc(2));
107         params.put("max", new Double JavaDoc(3));
108
109         BasicError error = validator.validate(str, params, "fail", null);
110         assertNotNull(error);
111         assertEquals("fail", error.getMessage());
112
113         str = "1234";
114         params = new HashMap JavaDoc();
115         params.put("min", new Double JavaDoc(2));
116         params.put("max", new Double JavaDoc(3));
117
118         error = validator.validate(str, params, "fail", null);
119         assertNotNull(error);
120         assertEquals("fail", error.getMessage());
121     }
122
123     /**
124      * Tests that null returns null
125      */

126     public void testNull() {
127         String JavaDoc str = null;
128         StringTypeValidator validator = new StringTypeValidator();
129
130         BasicError error = validator.validate(str, null, "fail", null);
131         assertNull(error);
132     }
133
134     /**
135      * Tests that toString null returns null
136      */

137     public void testToStringNull() {
138         Object JavaDoc value = new Object JavaDoc() {
139             public String JavaDoc toString() {return null;}
140         };
141
142         StringTypeValidator validator = new StringTypeValidator();
143         BasicError error = validator.validate(value, null, "fail", null);
144         assertNull(error);
145     }
146
147     /**
148      * Tests that empty returns null
149      */

150     public void testEmpty() {
151         String JavaDoc str = "";
152         StringTypeValidator validator = new StringTypeValidator();
153
154         BasicError error = validator.validate(str, null, "fail", null);
155         assertNull(error);
156     }
157
158     /**
159      * Test that the validator does fail if the toString method fails.
160      */

161     public void testStringFailure() {
162         Object JavaDoc value = new Object JavaDoc() {
163             public String JavaDoc toString() {
164                 throw new NullPointerException JavaDoc();
165             }
166         };
167
168         StringTypeValidator validator = new StringTypeValidator();
169         BasicError error = validator.validate(value, null, "fail", null);
170         assertNotNull(error);
171         assertEquals("fail", error.getMessage());
172     }
173
174     /**
175      * Tests that the min and max work as strings
176      */

177     public void testMinMaxAsStrings() {
178         String JavaDoc str = "1";
179         StringTypeValidator validator = new StringTypeValidator();
180
181         Map JavaDoc params = new HashMap JavaDoc();
182         params.put("min", "2");
183         params.put("max", "3");
184
185         BasicError error = validator.validate(str, params, "fail", null);
186         assertNotNull(error);
187         assertEquals("fail", error.getMessage());
188
189         str = "1234";
190         params = new HashMap JavaDoc();
191         params.put("min", "2");
192         params.put("max", "3");
193
194         error = validator.validate(str, params, "fail", null);
195         assertNotNull(error);
196         assertEquals("fail", error.getMessage());
197     }
198
199     /**
200      * Tests that the min and max fail if bad
201      */

202     public void testMinMaxFailure() {
203         String JavaDoc str = "1";
204         StringTypeValidator validator = new StringTypeValidator();
205
206         Map JavaDoc params = new HashMap JavaDoc();
207         params.put("min", "foo");
208         params.put("max", "3");
209
210         try {
211             validator.validate(str, params, "fail", null);
212             fail("Should have failed");
213         } catch (NumberFormatException JavaDoc nfe) {
214             // Expected
215
}
216
217         params = new HashMap JavaDoc();
218         params.put("min", "2");
219         params.put("max", "bar");
220
221         try {
222             validator.validate(str, params, "fail", null);
223             fail("Should have failed");
224         } catch (NumberFormatException JavaDoc nfe) {
225             // Expected
226
}
227     }
228 }
Popular Tags