1 //
2 // Copyright (c) 2003, Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
3 // All rights reserved.
4 //
5 // Redistribution and use in source and binary forms, with or without modification,
6 // are permitted provided that the following conditions are met:
7 //
8 // * Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above copyright notice,
11 // this list of conditions and the following disclaimer in the documentation
12 // and/or other materials provided with the distribution.
13 // * Neither the name of the Caltha - Gajda, Krzewski, Mach, Potempski Sp.J.
14 // nor the names of its contributors may be used to endorse or promote products
15 // derived from this software without specific prior written permission.
16 //
17 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18 // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 // IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
21 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24 // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 // POSSIBILITY OF SUCH DAMAGE.
27 //
28
29 package org.objectledge.configuration;
30
31 import junit.framework.TestCase;
32
33 import org.jcontainer.dna.Configuration;
34 import org.jcontainer.dna.ConfigurationException;
35 import org.objectledge.filesystem.ClasspathFileSystemProvider;
36 import org.objectledge.filesystem.FileSystem;
37 import org.objectledge.filesystem.FileSystemProvider;
38 import org.objectledge.filesystem.LocalFileSystemProvider;
39 import org.objectledge.xml.XMLGrammarCache;
40 import org.objectledge.xml.XMLValidator;
41
42 /***
43 *
44 *
45 * @author <a href="Rafal.Krzewski">rafal@caltha.pl</a>
46 * @version $Id: ConfigurationFactoryTest.java,v 1.1 2004/06/25 11:01:00 fil Exp $
47 */
48 public class ConfigurationFactoryTest
49 extends TestCase
50 {
51 private ConfigurationFactory cf;
52
53 /***
54 * Constructor for ConfigurationFactoryTest.
55 * @param arg0
56 */
57 public ConfigurationFactoryTest(String arg0)
58 {
59 super(arg0);
60 }
61
62 public void setUp()
63 throws Exception
64 {
65 super.setUp();
66 FileSystemProvider lfs = new LocalFileSystemProvider("local", "src/test/resources");
67 FileSystemProvider cfs = new ClasspathFileSystemProvider("classpath",
68 getClass().getClassLoader());
69 FileSystem fs = new FileSystem(new FileSystemProvider[] { lfs, cfs }, 4096, 4096);
70 XMLValidator xv = new XMLValidator(new XMLGrammarCache());
71 cf = new ConfigurationFactory(fs, xv, "config");
72 }
73
74 public void testGetConfig()
75 throws ConfigurationException
76 {
77 Configuration config = cf.getConfig("org.objectledge.test.FooComponent",
78 org.objectledge.test.FooComponent.class);
79 Configuration a = config.getChild("a");
80 assertEquals(a.getValue(), "a");
81 Configuration b = config.getChild("b");
82 assertEquals(b.getAttribute("attr"), "b");
83 Configuration[] d = config.getChild("c").getChildren("d");
84 assertEquals(d[0].getValue(), "d1");
85 assertEquals(d[1].getValue(), "d2");
86 }
87 }