KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > dna > impl > DefaultConfigurationTestCase


1 /*
2  * Copyright (C) The DNA Group. All rights reserved.
3  *
4  * This software is published under the terms of the DNA
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.codehaus.dna.impl;
9
10 import java.util.Map JavaDoc;
11 import junit.framework.TestCase;
12
13 import org.codehaus.dna.Configuration;
14 import org.codehaus.dna.ConfigurationException;
15 import org.codehaus.dna.impl.DefaultConfiguration;
16
17 public class DefaultConfigurationTestCase
18     extends TestCase
19 {
20     public void testBasicConfigurationElement()
21         throws Exception JavaDoc
22     {
23         final String JavaDoc name = "myElement";
24         final String JavaDoc location = "file.xml:20";
25         final String JavaDoc path = "";
26         final DefaultConfiguration configuration =
27             new DefaultConfiguration( name, location, path );
28         assertEquals( "name", name, configuration.getName() );
29         assertEquals( "location", location, configuration.getLocation() );
30         assertEquals( "path", path, configuration.getPath() );
31     }
32
33     public void testNullNameInCtor()
34         throws Exception JavaDoc
35     {
36         final String JavaDoc name = null;
37         final String JavaDoc location = "file.xml:20";
38         final String JavaDoc path = "";
39         try
40         {
41             new DefaultConfiguration( name, location, path );
42         }
43         catch( final NullPointerException JavaDoc npe )
44         {
45             assertEquals( "name", npe.getMessage() );
46             return;
47         }
48         fail( "Expected null pointer exception as passed in null to ctor." );
49     }
50
51     public void testNullLocationInCtor()
52         throws Exception JavaDoc
53     {
54         final String JavaDoc name = "name";
55         final String JavaDoc location = null;
56         final String JavaDoc path = "";
57         try
58         {
59             new DefaultConfiguration( name, location, path );
60         }
61         catch( final NullPointerException JavaDoc npe )
62         {
63             assertEquals( "location", npe.getMessage() );
64             return;
65         }
66         fail( "Expected null pointer exception as passed in null to ctor." );
67     }
68
69     public void testNullPathInCtor()
70         throws Exception JavaDoc
71     {
72         final String JavaDoc name = "name";
73         final String JavaDoc location = "";
74         final String JavaDoc path = null;
75         try
76         {
77             new DefaultConfiguration( name, location, path );
78         }
79         catch( final NullPointerException JavaDoc npe )
80         {
81             assertEquals( "path", npe.getMessage() );
82             return;
83         }
84         fail( "Expected null pointer exception as passed in null to ctor." );
85     }
86
87     public void testNullNameInSetAttribute()
88         throws Exception JavaDoc
89     {
90         final DefaultConfiguration configuration =
91             new DefaultConfiguration( "name", "", "" );
92         try
93         {
94             configuration.setAttribute( null, "" );
95         }
96         catch( final NullPointerException JavaDoc npe )
97         {
98             assertEquals( "key", npe.getMessage() );
99             return;
100         }
101         fail( "Expected null pointer exception as passed in null to setAttribute." );
102     }
103
104     public void testNullValueInSetAttribute()
105         throws Exception JavaDoc
106     {
107         final DefaultConfiguration configuration =
108             new DefaultConfiguration( "name", "", "" );
109         try
110         {
111             configuration.setAttribute( "", null );
112         }
113         catch( final NullPointerException JavaDoc npe )
114         {
115             assertEquals( "value", npe.getMessage() );
116             return;
117         }
118         fail( "Expected null pointer exception as passed in null to setAttribute." );
119     }
120
121     public void testNullValueInSetValue()
122         throws Exception JavaDoc
123     {
124         final DefaultConfiguration configuration =
125             new DefaultConfiguration( "name", "", "" );
126         try
127         {
128             configuration.setValue( null );
129         }
130         catch( final NullPointerException JavaDoc npe )
131         {
132             assertEquals( "value", npe.getMessage() );
133             return;
134         }
135         fail( "Expected null pointer exception as passed in null to setValue." );
136     }
137
138     public void testNullChildinAddChild()
139         throws Exception JavaDoc
140     {
141         final DefaultConfiguration configuration =
142             new DefaultConfiguration( "name", "", "" );
143         try
144         {
145             configuration.addChild( null );
146         }
147         catch( final NullPointerException JavaDoc npe )
148         {
149             assertEquals( "configuration", npe.getMessage() );
150             return;
151         }
152         fail( "Expected null pointer exception as passed in null to addChild." );
153     }
154
155     public void testNullNameInGetAttribute()
156         throws Exception JavaDoc
157     {
158         final DefaultConfiguration configuration =
159             new DefaultConfiguration( "name", "", "" );
160         try
161         {
162             configuration.getAttribute( null );
163         }
164         catch( final NullPointerException JavaDoc npe )
165         {
166             assertEquals( "name", npe.getMessage() );
167             return;
168         }
169         fail( "Expected null pointer exception as passed in null to getAttribute." );
170     }
171
172     public void testNullNameInGetChild()
173         throws Exception JavaDoc
174     {
175         final DefaultConfiguration configuration =
176             new DefaultConfiguration( "name", "", "" );
177         try
178         {
179             configuration.getChild( null, false );
180         }
181         catch( final NullPointerException JavaDoc npe )
182         {
183             assertEquals( "name", npe.getMessage() );
184             return;
185         }
186         fail( "Expected null pointer exception as passed in null to getChild." );
187     }
188
189     public void testNullNameInGetChildren()
190         throws Exception JavaDoc
191     {
192         final DefaultConfiguration configuration =
193             new DefaultConfiguration( "name", "", "" );
194         try
195         {
196             configuration.getChildren( null );
197         }
198         catch( final NullPointerException JavaDoc npe )
199         {
200             assertEquals( "name", npe.getMessage() );
201             return;
202         }
203         fail( "Expected null pointer exception as passed in null to getChildren." );
204     }
205
206     public void testGetValueAsText()
207         throws Exception JavaDoc
208     {
209         final DefaultConfiguration configuration =
210             new DefaultConfiguration( "myElement", "file.xml:20", "" );
211         final String JavaDoc value = "blah";
212         configuration.setValue( value );
213         assertEquals( "getValue()", value, configuration.getValue() );
214         assertEquals( "getValue('test')", value, configuration.getValue( "test" ) );
215     }
216
217     public void testGetNullValueAsText()
218         throws Exception JavaDoc
219     {
220         final DefaultConfiguration configuration =
221             new DefaultConfiguration( "myElement", "file.xml:20", "" );
222         assertEquals( "getValue('test')", "test", configuration.getValue( "test" ) );
223         try
224         {
225             configuration.getValue();
226         }
227         catch( ConfigurationException e )
228         {
229             return;
230         }
231         fail( "Expected getValue() to throw an exception" );
232     }
233
234     public void testGetValueAsBoolean()
235         throws Exception JavaDoc
236     {
237         final DefaultConfiguration configuration =
238             new DefaultConfiguration( "myElement", "file.xml:20", "" );
239         configuration.setValue( "true" );
240         assertEquals( "getValue()", true, configuration.getValueAsBoolean() );
241         assertEquals( "getValue('false')", true, configuration.getValueAsBoolean( false ) );
242     }
243
244     public void testGetNullValueAsBoolean()
245         throws Exception JavaDoc
246     {
247         final DefaultConfiguration configuration =
248             new DefaultConfiguration( "myElement", "file.xml:20", "" );
249         assertEquals( "getValue('false')", false, configuration.getValueAsBoolean( false ) );
250         try
251         {
252             configuration.getValueAsBoolean();
253         }
254         catch( ConfigurationException e )
255         {
256             return;
257         }
258         fail( "Expected getValue() to throw an exception" );
259     }
260
261     public void testGetValueAsInteger()
262         throws Exception JavaDoc
263     {
264         final DefaultConfiguration configuration =
265             new DefaultConfiguration( "myElement", "file.xml:20", "" );
266         configuration.setValue( "3" );
267         assertEquals( "getValue()", 3, configuration.getValueAsInteger() );
268         assertEquals( "getValue('1')", 3, configuration.getValueAsInteger( 1 ) );
269     }
270
271     public void testGetNullValueAsInteger()
272         throws Exception JavaDoc
273     {
274         final DefaultConfiguration configuration =
275             new DefaultConfiguration( "myElement", "file.xml:20", "" );
276         assertEquals( "getValue('1')", 1, configuration.getValueAsInteger( 1 ) );
277         try
278         {
279             configuration.getValueAsInteger();
280         }
281         catch( ConfigurationException e )
282         {
283             return;
284         }
285         fail( "Expected getValue() to throw an exception" );
286     }
287
288     public void testGetMalformedValueAsInteger()
289         throws Exception JavaDoc
290     {
291         final DefaultConfiguration configuration =
292             new DefaultConfiguration( "myElement", "file.xml:20", "" );
293         configuration.setValue( "malformed" );
294         assertEquals( "getValue('1')", 1, configuration.getValueAsInteger( 1 ) );
295         try
296         {
297             configuration.getValueAsInteger();
298         }
299         catch( ConfigurationException e )
300         {
301             return;
302         }
303         fail( "Expected getValue() to throw an exception" );
304     }
305
306     public void testGetValueAsLong()
307         throws Exception JavaDoc
308     {
309         final DefaultConfiguration configuration =
310             new DefaultConfiguration( "myElement", "file.xml:20", "" );
311         configuration.setValue( "3" );
312         assertEquals( "getValue()", 3, configuration.getValueAsLong() );
313         assertEquals( "getValue('1')", 3, configuration.getValueAsLong( 1 ) );
314     }
315
316     public void testGetNullValueAsLong()
317         throws Exception JavaDoc
318     {
319         final DefaultConfiguration configuration =
320             new DefaultConfiguration( "myElement", "file.xml:20", "" );
321         assertEquals( "getValue('1')", 1, configuration.getValueAsLong( 1 ) );
322         try
323         {
324             configuration.getValueAsLong();
325         }
326         catch( ConfigurationException e )
327         {
328             return;
329         }
330         fail( "Expected getValue() to throw an exception" );
331     }
332
333     public void testGetMalformedValueAsLong()
334         throws Exception JavaDoc
335     {
336         final DefaultConfiguration configuration =
337             new DefaultConfiguration( "myElement", "file.xml:20", "" );
338         configuration.setValue( "malformed" );
339         assertEquals( "getValue('1')", 1, configuration.getValueAsLong( 1 ) );
340         try
341         {
342             configuration.getValueAsLong();
343         }
344         catch( ConfigurationException e )
345         {
346             return;
347         }
348         fail( "Expected getValue() to throw an exception" );
349     }
350
351     public void testGetValueAsFloat()
352         throws Exception JavaDoc
353     {
354         final DefaultConfiguration configuration =
355             new DefaultConfiguration( "myElement", "file.xml:20", "" );
356         configuration.setValue( "3.0" );
357         assertTrue( "getValue()", 3.0 == configuration.getValueAsFloat() );
358         assertTrue( "getValue('1')", 3.0 == configuration.getValueAsFloat( 1 ) );
359     }
360
361     public void testGetNullValueAsFloat()
362         throws Exception JavaDoc
363     {
364         final DefaultConfiguration configuration =
365             new DefaultConfiguration( "myElement", "file.xml:20", "" );
366         assertTrue( "getValue('1')", 1.0 == configuration.getValueAsFloat( 1 ) );
367         try
368         {
369             configuration.getValueAsFloat();
370         }
371         catch( ConfigurationException e )
372         {
373             return;
374         }
375         fail( "Expected getValue() to throw an exception" );
376     }
377
378     public void testGetMalformedValueAsFloat()
379         throws Exception JavaDoc
380     {
381         final DefaultConfiguration configuration =
382             new DefaultConfiguration( "myElement", "file.xml:20", "" );
383         configuration.setValue( "malformed" );
384         assertTrue( "getValue('1')", 1.0 == configuration.getValueAsFloat( 1 ) );
385         try
386         {
387             configuration.getValueAsFloat();
388         }
389         catch( ConfigurationException e )
390         {
391             return;
392         }
393         fail( "Expected getValue() to throw an exception" );
394     }
395
396     public void testGetAttributeAsText()
397         throws Exception JavaDoc
398     {
399         final DefaultConfiguration configuration =
400             new DefaultConfiguration( "myElement", "file.xml:20", "" );
401         final String JavaDoc key = "key";
402         final String JavaDoc value = "value";
403         configuration.setAttribute( key, value );
404         assertEquals( "getAttribute('key')",
405                       value,
406                       configuration.getAttribute( key ) );
407         assertEquals( "getAttribute('key','defaultValue')",
408                       value,
409                       configuration.getAttribute( key, "defaultValue" ) );
410     }
411
412     public void testGetMissingAttributeAsText()
413         throws Exception JavaDoc
414     {
415         final DefaultConfiguration configuration =
416             new DefaultConfiguration( "myElement", "file.xml:20", "" );
417         final String JavaDoc key = "key";
418         configuration.setAttribute( "AnotherKey", "someValue" );
419         assertEquals( "getAttribute('key','defaultValue')",
420                       "defaultValue",
421                       configuration.getAttribute( key, "defaultValue" ) );
422
423         try
424         {
425             configuration.getAttribute( key );
426         }
427         catch( ConfigurationException e )
428         {
429             return;
430         }
431         fail( "Expected to fail with getAttribute for non existent key" );
432     }
433
434     public void testGetAttributeAsBoolean()
435         throws Exception JavaDoc
436     {
437         final DefaultConfiguration configuration =
438             new DefaultConfiguration( "myElement", "file.xml:20", "" );
439         final String JavaDoc key = "key";
440         final String JavaDoc value = "true";
441         configuration.setAttribute( key, value );
442         assertEquals( "getAttribute('key')",
443                       true,
444                       configuration.getAttributeAsBoolean( key ) );
445         assertEquals( "getAttribute('key','false')",
446                       true,
447                       configuration.getAttributeAsBoolean( key, false ) );
448     }
449
450     public void testGetMissingAttributeAsBoolean()
451         throws Exception JavaDoc
452     {
453         final DefaultConfiguration configuration =
454             new DefaultConfiguration( "myElement", "file.xml:20", "" );
455         final String JavaDoc key = "key";
456         assertEquals( "getAttribute('key','false')",
457                       false,
458                       configuration.getAttributeAsBoolean( key, false ) );
459         try
460         {
461             configuration.getAttribute( key );
462         }
463         catch( ConfigurationException e )
464         {
465             return;
466         }
467         fail( "Expected to fail with getAttribute for non existent key" );
468     }
469
470     public void testGetAttributeAsInteger()
471         throws Exception JavaDoc
472     {
473         final DefaultConfiguration configuration =
474             new DefaultConfiguration( "myElement", "file.xml:20", "" );
475         final String JavaDoc key = "key";
476         final String JavaDoc value = "3";
477         configuration.setAttribute( key, value );
478         assertEquals( "getAttribute('key')",
479                       3,
480                       configuration.getAttributeAsInteger( key ) );
481         assertEquals( "getAttribute('key','1')",
482                       3,
483                       configuration.getAttributeAsInteger( key, 1 ) );
484     }
485
486     public void testGetMissingAttributeAsInteger()
487         throws Exception JavaDoc
488     {
489         final DefaultConfiguration configuration =
490             new DefaultConfiguration( "myElement", "file.xml:20", "" );
491         final String JavaDoc key = "key";
492         assertEquals( "getAttribute('key','defaultValue')",
493                       1,
494                       configuration.getAttributeAsInteger( key, 1 ) );
495
496         try
497         {
498             configuration.getAttributeAsInteger( key );
499         }
500         catch( ConfigurationException e )
501         {
502             return;
503         }
504         fail( "Expected to fail with getAttribute for non existent key" );
505     }
506
507     public void testGetMalformedAttributeAsInteger()
508         throws Exception JavaDoc
509     {
510         final DefaultConfiguration configuration =
511             new DefaultConfiguration( "myElement", "file.xml:20", "" );
512         final String JavaDoc key = "key";
513         final String JavaDoc value = "malformed";
514         configuration.setAttribute( key, value );
515         assertEquals( "getAttribute('key','defaultValue')",
516                       1,
517                       configuration.getAttributeAsInteger( key, 1 ) );
518
519         try
520         {
521             configuration.getAttributeAsInteger( key );
522         }
523         catch( ConfigurationException e )
524         {
525             return;
526         }
527         fail( "Expected to fail with getAttribute for malformed attribute" );
528     }
529
530     public void testGetAttributeAsLong()
531         throws Exception JavaDoc
532     {
533         final DefaultConfiguration configuration =
534             new DefaultConfiguration( "myElement", "file.xml:20", "" );
535         final String JavaDoc key = "key";
536         final String JavaDoc value = "3";
537         configuration.setAttribute( key, value );
538         assertEquals( "getAttribute('key')",
539                       3,
540                       configuration.getAttributeAsLong( key ) );
541         assertEquals( "getAttribute('key','1')",
542                       3,
543                       configuration.getAttributeAsLong( key, 1 ) );
544     }
545
546     public void testGetMissingAttributeAsLong()
547         throws Exception JavaDoc
548     {
549         final DefaultConfiguration configuration =
550             new DefaultConfiguration( "myElement", "file.xml:20", "" );
551         final String JavaDoc key = "key";
552         assertEquals( "getAttribute('key','1')",
553                       1,
554                       configuration.getAttributeAsLong( key, 1 ) );
555
556         try
557         {
558             configuration.getAttributeAsLong( key );
559         }
560         catch( ConfigurationException e )
561         {
562             return;
563         }
564         fail( "Expected to fail with getAttribute for non existent key" );
565     }
566
567     public void testGetMalformedAttributeAsLong()
568         throws Exception JavaDoc
569     {
570         final DefaultConfiguration configuration =
571             new DefaultConfiguration( "myElement", "file.xml:20", "" );
572         final String JavaDoc key = "key";
573         final String JavaDoc value = "malformed";
574         configuration.setAttribute( key, value );
575         assertEquals( "getAttribute('key','1')",
576                       1,
577                       configuration.getAttributeAsLong( key, 1 ) );
578
579         try
580         {
581             configuration.getAttributeAsLong( key );
582         }
583         catch( ConfigurationException e )
584         {
585             return;
586         }
587         fail( "Expected to fail with getAttribute for malformed attribute" );
588     }
589
590     public void testGetAttributeAsFloat()
591         throws Exception JavaDoc
592     {
593         final DefaultConfiguration configuration =
594             new DefaultConfiguration( "myElement", "file.xml:20", "" );
595         final String JavaDoc key = "key";
596         final String JavaDoc value = "3";
597         configuration.setAttribute( key, value );
598         assertTrue( "getAttribute('key')",
599                     3.0 == configuration.getAttributeAsFloat( key ) );
600         assertTrue( "getAttribute('key','1')",
601                     3.0 == configuration.getAttributeAsFloat( key, 1 ) );
602     }
603
604     public void testGetMissingAttributeAsFloat()
605         throws Exception JavaDoc
606     {
607         final DefaultConfiguration configuration =
608             new DefaultConfiguration( "myElement", "file.xml:20", "" );
609         final String JavaDoc key = "key";
610         assertTrue( "getAttribute('key','defaultValue')",
611                     1.0 == configuration.getAttributeAsFloat( key, 1 ) );
612
613         try
614         {
615             configuration.getAttributeAsFloat( key );
616         }
617         catch( ConfigurationException e )
618         {
619             return;
620         }
621         fail( "Expected to fail with getAttribute for non existent key" );
622     }
623
624     public void testGetMalformedAttributeAsFloat()
625         throws Exception JavaDoc
626     {
627         final DefaultConfiguration configuration =
628             new DefaultConfiguration( "myElement", "file.xml:20", "" );
629         final String JavaDoc key = "key";
630         final String JavaDoc value = "malformed";
631         configuration.setAttribute( key, value );
632         assertTrue( "getAttribute('key','defaultValue')",
633                     1.0 == configuration.getAttributeAsFloat( key, 1 ) );
634
635         try
636         {
637             configuration.getAttributeAsFloat( key );
638         }
639         catch( ConfigurationException e )
640         {
641             return;
642         }
643         fail( "Expected to fail with getAttribute for malformed attribute" );
644     }
645
646     public void testGetAttributes()
647         throws Exception JavaDoc
648     {
649         final DefaultConfiguration configuration =
650             new DefaultConfiguration( "myElement", "file.xml:20", "" );
651         configuration.setAttribute( "key1", "value1" );
652         configuration.setAttribute( "key2", "value2" );
653
654         final String JavaDoc[] names = configuration.getAttributeNames();
655         assertEquals( "names.length", 2, names.length );
656     }
657
658     public void testGetAttributesWithNoAttributesSet()
659         throws Exception JavaDoc
660     {
661         final DefaultConfiguration configuration =
662             new DefaultConfiguration( "myElement", "file.xml:20", "" );
663
664         final String JavaDoc[] names = configuration.getAttributeNames();
665         assertEquals( "names.length", 0, names.length );
666     }
667
668     public void testGetChildren()
669         throws Exception JavaDoc
670     {
671         final DefaultConfiguration configuration =
672             new DefaultConfiguration( "myElement", "file.xml:20", "" );
673         final DefaultConfiguration child =
674             new DefaultConfiguration( "mychild", "file.xml:20", "/myElement" );
675
676         configuration.addChild( child );
677
678         final Configuration[] children = configuration.getChildren();
679         assertEquals( "children.length", 1, children.length );
680         assertEquals( "children[0]", child, children[ 0 ] );
681     }
682
683     public void testGetChildrenWithNoChildren()
684         throws Exception JavaDoc
685     {
686         final DefaultConfiguration configuration =
687             new DefaultConfiguration( "myElement", "file.xml:20", "" );
688
689         final Configuration[] children = configuration.getChildren();
690         assertEquals( "children.length", 0, children.length );
691     }
692
693     public void testGetChild()
694         throws Exception JavaDoc
695     {
696         final DefaultConfiguration configuration =
697             new DefaultConfiguration( "myElement", "file.xml:20", "" );
698         final DefaultConfiguration child =
699             new DefaultConfiguration( "mychild", "file.xml:20", "/myElement" );
700         configuration.addChild( child );
701
702         final Configuration test = configuration.getChild( "mychild" );
703         assertEquals( child, test );
704     }
705
706     public void testGetNotExistentChildWithNoAutoCreateButOtherChildren()
707         throws Exception JavaDoc
708     {
709         final DefaultConfiguration configuration =
710             new DefaultConfiguration( "myElement", "file.xml:20", "" );
711
712         final DefaultConfiguration child =
713             new DefaultConfiguration( "meep", "file.xml:20", "/myElement" );
714         configuration.addChild( child );
715
716         final Configuration test = configuration.getChild( "mychild", false );
717         assertEquals( null, test );
718     }
719
720     public void testGetNotExistentChildWithNoAutoCreate()
721         throws Exception JavaDoc
722     {
723         final DefaultConfiguration configuration =
724             new DefaultConfiguration( "myElement", "file.xml:20", "" );
725
726         final Configuration test = configuration.getChild( "mychild", false );
727         assertEquals( null, test );
728     }
729
730     public void testGetNotExistentChildWithAutoCreate()
731         throws Exception JavaDoc
732     {
733         final DefaultConfiguration configuration =
734             new DefaultConfiguration( "myElement", "file.xml:20", "" );
735
736         final Configuration test = configuration.getChild( "mychild", true );
737         assertNotNull( test );
738         assertEquals( "mychild", test.getName() );
739     }
740
741     public void testGuardAgainstMixedContentWhenAddingValue()
742         throws Exception JavaDoc
743     {
744         final DefaultConfiguration configuration =
745             new DefaultConfiguration( "myElement", "file.xml:20", "" );
746         final DefaultConfiguration child =
747             new DefaultConfiguration( "mychild", "file.xml:20", "/myElement" );
748         configuration.addChild( child );
749
750         try
751         {
752             configuration.setValue( "blah" );
753         }
754         catch( IllegalStateException JavaDoc e )
755         {
756             return;
757         }
758         fail( "Expected to fail setting mixed content for configuration" );
759     }
760
761     public void testGuardAgainstMixedContentWhenAddingChild()
762         throws Exception JavaDoc
763     {
764         final DefaultConfiguration configuration =
765             new DefaultConfiguration( "myElement", "file.xml:20", "" );
766         final DefaultConfiguration child =
767             new DefaultConfiguration( "mychild", "file.xml:20", "/myElement" );
768         configuration.setValue( "blah" );
769
770         try
771         {
772             configuration.addChild( child );
773         }
774         catch( IllegalStateException JavaDoc e )
775         {
776             return;
777         }
778         fail( "Expected to fail setting mixed content for configuration" );
779     }
780
781     public void testGetChildrenWithName()
782         throws Exception JavaDoc
783     {
784         final DefaultConfiguration configuration =
785             new DefaultConfiguration( "myElement", "file.xml:20", "" );
786         final DefaultConfiguration child1 =
787             new DefaultConfiguration( "mychild", "file.xml:20", "/myElement" );
788         final DefaultConfiguration child2 =
789             new DefaultConfiguration( "blah", "file.xml:20", "/myElement" );
790         final DefaultConfiguration child3 =
791             new DefaultConfiguration( "myOtherChild", "file.xml:20", "/myElement" );
792
793         configuration.addChild( child1 );
794         configuration.addChild( child2 );
795         configuration.addChild( child3 );
796
797         final Configuration[] children = configuration.getChildren( "mychild" );
798         assertEquals( "children.length", 1, children.length );
799     }
800
801     public void testGetChildrenWithNameAndNoExistingChildren()
802         throws Exception JavaDoc
803     {
804         final DefaultConfiguration configuration =
805             new DefaultConfiguration( "myElement", "file.xml:20", "" );
806
807         final Configuration[] children =
808             configuration.getChildren( "mychild" );
809         assertEquals( "children.length", 0, children.length );
810     }
811
812     public void testAutogeneratePath()
813         throws Exception JavaDoc
814     {
815         final DefaultConfiguration configuration =
816             new DefaultConfiguration( "myElement", "file.xml:20", "" );
817
818         final Configuration child = configuration.getChild( "test" ).getChild( "blah" );
819         assertEquals( "child.path", "/myElement/test", child.getPath() );
820         assertTrue( "child.location", child.getLocation().endsWith( "<autogen>" ) );
821     }
822
823     public void testMakeReadOnlyWithNoChildren()
824         throws Exception JavaDoc
825     {
826         final DefaultConfiguration configuration =
827             new DefaultConfiguration( "myElement", "file.xml:20", "" );
828         configuration.makeReadOnly();
829         assertTrue( "configuration.isReadOnly()", configuration.isReadOnly() );
830     }
831
832     public void testMakeReadOnlyWithChildren()
833         throws Exception JavaDoc
834     {
835         final DefaultConfiguration configuration =
836             new DefaultConfiguration( "myElement", "file.xml:20", "" );
837
838         final DefaultConfiguration child =
839             new DefaultConfiguration( "child", "file.xml:20", "/myElement" );
840         configuration.addChild( child );
841
842         configuration.makeReadOnly();
843         assertTrue( "configuration.isReadOnly()", configuration.isReadOnly() );
844         assertTrue( "child.isReadOnly()", child.isReadOnly() );
845     }
846
847     public void testMakeReadOnlyWithNonFreezableChildren()
848         throws Exception JavaDoc
849     {
850         final DefaultConfiguration configuration =
851             new DefaultConfiguration( "myElement", "file.xml:20", "" );
852
853         configuration.addChild( new MockConfiguration() );
854
855         configuration.makeReadOnly();
856         assertTrue( "configuration.isReadOnly()", configuration.isReadOnly() );
857     }
858
859     public void testToString()
860         throws Exception JavaDoc
861     {
862         final DefaultConfiguration configuration =
863             new DefaultConfiguration( "myElement", "file.xml:20", "" );
864
865         final String JavaDoc expected = "[Configuration name='myElement']";
866         final String JavaDoc string = configuration.toString();
867         assertEquals( expected, string );
868     }
869
870     public void testToStringWithAttributes()
871         throws Exception JavaDoc
872     {
873         final DefaultConfiguration configuration =
874             new DefaultConfiguration( "myElement", "file.xml:20", "" );
875         configuration.setAttribute( "key", "value" );
876         final Map JavaDoc attributeMap = configuration.getAttributeMap();
877
878         final String JavaDoc expected =
879             "[Configuration name='myElement' attributes=" + attributeMap + "]";
880         final String JavaDoc string = configuration.toString();
881         assertEquals( expected, string );
882     }
883 }
884
Popular Tags