1 /*
2 * Copyright (C) The JContainer Group. All rights reserved.
3 *
4 * This software is published under the terms of the JContainer
5 * Software License version 1.1, a copy of which has been included
6 * with this distribution in the LICENSE.txt file.
7 */
8 package org.jcontainer.dna.impl;
9
10 import junit.framework.TestCase;
11 import org.jcontainer.dna.ParameterException;
12 import org.jcontainer.dna.Parameters;
13
14 public class DefaultParametersTestCase
15 extends TestCase
16 {
17 public void testGetParameter()
18 throws Exception
19 {
20 final DefaultParameters parameters = new DefaultParameters();
21 final String name = "key";
22 final String value = "value";
23 parameters.setParameter( name, value );
24 assertEquals( "parameters.isParameter( name )",
25 true,
26 parameters.isParameter( name ) );
27 assertEquals( "parameters.getParameter( name, 'blah' )",
28 value,
29 parameters.getParameter( name, "blah" ) );
30 assertEquals( "parameters.getParameter( name )",
31 value,
32 parameters.getParameter( name ) );
33 }
34
35 public void testGetMissingParameter()
36 throws Exception
37 {
38 final DefaultParameters parameters = new DefaultParameters();
39 final String name = "key";
40 assertEquals( "parameters.isParameter( name )",
41 false,
42 parameters.isParameter( name ) );
43 assertEquals( "parameters.getParameter( name, 'blah' )",
44 "blah",
45 parameters.getParameter( name, "blah" ) );
46 try
47 {
48 parameters.getParameter( name );
49 fail( "Expected getParameter on non existent parameter to fail" );
50 }
51 catch( ParameterException e )
52 {
53
54 }
55 }
56
57 public void testGetParameterNames()
58 throws Exception
59 {
60 final DefaultParameters parameters = new DefaultParameters();
61 final String name = "key";
62 final String value = "value";
63 parameters.setParameter( name, value );
64 final String[] names = parameters.getParameterNames();
65
66 assertEquals( "names.length", 1, names.length );
67 assertEquals( "names[0]", name, names[ 0 ] );
68 }
69
70 public void testGetParameterWithNullName()
71 throws Exception
72 {
73 final DefaultParameters parameters = new DefaultParameters();
74 try
75 {
76 parameters.getParameter( null );
77 }
78 catch( NullPointerException npe )
79 {
80 assertEquals( "name", npe.getMessage() );
81 return;
82 }
83 fail( "Expected getParameter(null) to fail due to passing null " );
84 }
85
86 public void testGetParameterWDefaultWithNullName()
87 throws Exception
88 {
89 final DefaultParameters parameters = new DefaultParameters();
90 try
91 {
92 parameters.getParameter( null, "blah" );
93 }
94 catch( NullPointerException npe )
95 {
96 assertEquals( "name", npe.getMessage() );
97 return;
98 }
99 fail( "Expected getParameter(null,'blah') to fail due to passing null " );
100 }
101
102 public void testsetParameterWithNullName()
103 throws Exception
104 {
105 final DefaultParameters parameters = new DefaultParameters();
106 try
107 {
108 parameters.setParameter( null, "blah" );
109 }
110 catch( NullPointerException npe )
111 {
112 assertEquals( "name", npe.getMessage() );
113 return;
114 }
115 fail( "Expected setParameter(null,'blah') to fail due to passing null " );
116 }
117
118 public void testsetParameterWithNullValue()
119 throws Exception
120 {
121 final DefaultParameters parameters = new DefaultParameters();
122 try
123 {
124 parameters.setParameter( "blah", null );
125 }
126 catch( NullPointerException npe )
127 {
128 assertEquals( "value", npe.getMessage() );
129 return;
130 }
131 fail( "Expected setParameter('blah',null) to fail due to passing null " );
132 }
133
134 public void testNullPassedIntoCtor()
135 throws Exception
136 {
137 try
138 {
139 new DefaultParameters( null );
140 }
141 catch( NullPointerException npe )
142 {
143 assertEquals( "prefix", npe.getMessage() );
144 return;
145 }
146 fail( "Expected to fail due to passing null " );
147 }
148
149 public void testGetParameterAsBoolean()
150 throws Exception
151 {
152 final DefaultParameters parameters = new DefaultParameters();
153 final String name = "key";
154 final String value = "true";
155 parameters.setParameter( name, value );
156 assertEquals( "parameters.getParameterAsBoolean( name, false )",
157 true,
158 parameters.getParameterAsBoolean( name, false ) );
159 assertEquals( "parameters.getParameterAsBoolean( name )",
160 true,
161 parameters.getParameterAsBoolean( name ) );
162 }
163
164 public void testGetParameterAsInteger()
165 throws Exception
166 {
167 final DefaultParameters parameters = new DefaultParameters();
168 final String name = "key";
169 final String value = "1";
170 parameters.setParameter( name, value );
171 assertEquals( "parameters.getParameterAsInteger( name, 3 )",
172 1,
173 parameters.getParameterAsInteger( name, 3 ) );
174 assertEquals( "parameters.getParameterAsInteger( name )",
175 1,
176 parameters.getParameterAsInteger( name ) );
177 }
178
179 public void testGetParameterAsIntegerWithMalformedValue()
180 throws Exception
181 {
182 final DefaultParameters parameters = new DefaultParameters();
183 final String name = "key";
184 final String value = "a";
185 parameters.setParameter( name, value );
186 assertEquals( "parameters.getParameterAsInteger( name, 3 )",
187 3,
188 parameters.getParameterAsInteger( name, 3 ) );
189 try
190 {
191 parameters.getParameterAsInteger( name );
192 }
193 catch( ParameterException e )
194 {
195 return;
196 }
197 fail( "Expected to fail as parameter is malformed" );
198 }
199
200 public void testGetParameterAsLong()
201 throws Exception
202 {
203 final DefaultParameters parameters = new DefaultParameters();
204 final String name = "key";
205 final String value = "1";
206 parameters.setParameter( name, value );
207 assertEquals( "parameters.getParameterAsLong( name, 3 )",
208 1,
209 parameters.getParameterAsLong( name, 3 ) );
210 assertEquals( "parameters.getParameterAsLong( name )",
211 1,
212 parameters.getParameterAsLong( name ) );
213 }
214
215 public void testGetParameterAsLongWithMalformedValue()
216 throws Exception
217 {
218 final DefaultParameters parameters = new DefaultParameters();
219 final String name = "key";
220 final String value = "a";
221 parameters.setParameter( name, value );
222 assertEquals( "parameters.getParameterAsInteger( name, 3 )",
223 3,
224 parameters.getParameterAsLong( name, 3 ) );
225 try
226 {
227 parameters.getParameterAsLong( name );
228 }
229 catch( ParameterException e )
230 {
231 return;
232 }
233 fail( "Expected to fail as parameter is malformed" );
234 }
235
236 public void testGetParameterAsFloat()
237 throws Exception
238 {
239 final DefaultParameters parameters = new DefaultParameters();
240 final String name = "key";
241 final String value = "1.0";
242 parameters.setParameter( name, value );
243 assertTrue( "parameters.getParameterAsFloat( name, 3 )",
244 1.0 == parameters.getParameterAsFloat( name, 3 ) );
245 assertTrue( "parameters.getParameterAsFloat( name )",
246 1.0 == parameters.getParameterAsFloat( name ) );
247 }
248
249 public void testGetParameterAsFloatWithMalformedValue()
250 throws Exception
251 {
252 final DefaultParameters parameters = new DefaultParameters();
253 final String name = "key";
254 final String value = "a";
255 parameters.setParameter( name, value );
256 assertTrue( "parameters.getParameterAsFloat( name, 3 )",
257 3.0 == parameters.getParameterAsFloat( name, 3 ) );
258 try
259 {
260 parameters.getParameterAsFloat( name );
261 }
262 catch( ParameterException e )
263 {
264 return;
265 }
266 fail( "Expected to fail as parameter is malformed" );
267 }
268
269 public void testGetChildParametersWithZeroEntries()
270 throws Exception
271 {
272 final DefaultParameters parameters = new DefaultParameters();
273 final String name = "key";
274 final String value = "a";
275 parameters.setParameter( name, value );
276 final Parameters childParameters =
277 parameters.getChildParameters( "noexist" );
278
279 assertEquals( "childParameters.length",
280 0, childParameters.getParameterNames().length );
281 }
282
283 public void testGetChildParametersWithSplitEntries()
284 throws Exception
285 {
286 final DefaultParameters parameters = new DefaultParameters();
287 parameters.setParameter( "var", "a" );
288 parameters.setParameter( "var.s", "b" );
289 final DefaultParameters childParameters =
290 (DefaultParameters)parameters.getChildParameters( "var" );
291
292 final String[] names = childParameters.getParameterNames();
293 assertEquals( "childParameters.length", 1, names.length );
294 assertEquals( "names[0]", "s", names[ 0 ] );
295 assertEquals( "childParameters.getPrefix()",
296 "var", childParameters.getPrefix() );
297
298 }
299
300 public void testGetChildParametersWithSplitEntriesAcrossMultipleChildren()
301 throws Exception
302 {
303 final DefaultParameters parameters = new DefaultParameters();
304 parameters.setParameter( "var", "a" );
305 parameters.setParameter( "var.t.s", "b" );
306 final DefaultParameters childParameters =
307 (DefaultParameters)parameters.getChildParameters( "var" );
308 final DefaultParameters childChildParameters =
309 (DefaultParameters)childParameters.getChildParameters( "t" );
310
311 final String[] names = childChildParameters.getParameterNames();
312 assertEquals( "childParameters.length", 1, names.length );
313 assertEquals( "names[0]", "s", names[ 0 ] );
314 assertEquals( "childParameters.getPrefix()",
315 "var", childParameters.getPrefix() );
316
317 }
318
319 public void testMakeReadOnlyMakesChildrenReadOnly()
320 throws Exception
321 {
322 final DefaultParameters parameters = new DefaultParameters();
323 parameters.setParameter( "var", "a" );
324 parameters.setParameter( "var.t.s", "b" );
325 final DefaultParameters childParameters =
326 (DefaultParameters)parameters.getChildParameters( "var" );
327 final DefaultParameters childChildParameters =
328 (DefaultParameters)childParameters.getChildParameters( "t" );
329 parameters.makeReadOnly();
330
331 assertEquals( "child1.isReadOnly", true, childParameters.isReadOnly() );
332 assertEquals( "child2.isReadOnly", true, childChildParameters.isReadOnly() );
333 }
334
335 public void testGetChildParametersWithNullPrefix()
336 throws Exception
337 {
338 final DefaultParameters parameters = new DefaultParameters();
339 try
340 {
341 parameters.getChildParameters( null );
342 }
343 catch( NullPointerException npe )
344 {
345 assertEquals( "prefix", npe.getMessage() );
346 return;
347 }
348 fail( "Expected getChildParameters to fail when passing null prefix" );
349 }
350
351 public void testIsParameterWithNullName()
352 throws Exception
353 {
354 final DefaultParameters parameters = new DefaultParameters();
355 try
356 {
357 parameters.isParameter( null );
358 }
359 catch( NullPointerException npe )
360 {
361 assertEquals( "name", npe.getMessage() );
362 return;
363 }
364 fail( "Expected to fail as name is null" );
365 }
366
367 public void testGetParameterAsBooleanWithDefault()
368 throws Exception
369 {
370 final DefaultParameters parameters = new DefaultParameters();
371 assertEquals( true, parameters.getParameterAsBoolean( "blah", true ) );
372 }
373
374 public void testGetParameterAsIntegerWithDefault()
375 throws Exception
376 {
377 final DefaultParameters parameters = new DefaultParameters();
378 assertEquals( 1, parameters.getParameterAsInteger( "blah", 1 ) );
379 }
380
381 public void testGetParameterAsLongWithDefault()
382 throws Exception
383 {
384 final DefaultParameters parameters = new DefaultParameters();
385 assertEquals( 1, parameters.getParameterAsLong( "blah", 1 ) );
386 }
387
388 public void testGetParameterAsFloatWithDefault()
389 throws Exception
390 {
391 final DefaultParameters parameters = new DefaultParameters();
392 assertTrue( 1.0f == parameters.getParameterAsFloat( "blah", 1.0f ) );
393 }
394
395 public void testMakeReadOnlyWithNonFreezableChildParameters()
396 throws Exception
397 {
398 final DefaultParameters parameters = new DefaultParameters();
399 parameters.getChildren().add( new NoopParameters() );
400 parameters.makeReadOnly();
401 assertEquals( true, parameters.isReadOnly() );
402 }
403
404 }
This page was automatically generated by Maven