KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > opensubsystems > core > util > ConfigTest


1 /*
2  * Copyright (c) 2006 - 2007 OpenSubsystems s.r.o. Slovak Republic. All rights reserved.
3  *
4  * Project: OpenSubsystems
5  *
6  * $Id: ConfigTest.java,v 1.2 2007/01/07 06:14:55 bastafidli Exp $
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; version 2 of the License.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20  */

21
22 package org.opensubsystems.core.util;
23
24 import java.io.File JavaDoc;
25 import java.util.Properties JavaDoc;
26
27 import junit.framework.TestCase;
28
29 /**
30  * Tests for common operations with configuration files.
31  *
32  * @version $Id: ConfigTest.java,v 1.2 2007/01/07 06:14:55 bastafidli Exp $
33  * @author Miro Halas
34  * @code.reviewer Miro Halas
35  * @code.reviewed Initial revision
36  */

37 public class ConfigTest extends TestCase
38 {
39    /**
40     * Constructor.
41     *
42     * @param arg0 - name of the test
43     */

44    public ConfigTest(
45       String JavaDoc arg0
46    )
47    {
48       super(arg0);
49    }
50
51    /**
52     * Set up environment for the test case.
53     *
54     * @throws Exception - an error has occured during setting up test
55     */

56    protected void setUp(
57    ) throws Exception JavaDoc
58    {
59       super.setUp();
60    }
61
62    /**
63     * Restore original environment after the test case.
64     *
65     * @throws Exception - an error has occured during tearing down up test
66     */

67    protected void tearDown() throws Exception JavaDoc
68    {
69       super.tearDown();
70    }
71
72    /**
73     * Test getting properties from multiple dependent files
74     *
75     * @throws Exception - an error has occured
76     */

77    public void testGetPropertiesSafelyWithDependentFile(
78    ) throws Exception JavaDoc
79    {
80       File JavaDoc prop1file = null;
81       File JavaDoc prop2file = null;
82       File JavaDoc prop3file = null;
83       
84       try
85       {
86          prop1file = File.createTempFile("osstest1", "tmp");
87          prop2file = File.createTempFile("osstest2", "tmp");
88          prop3file = File.createTempFile("osstest3", "tmp");
89          
90          // First create three property files which redefine each, others properties
91
Properties JavaDoc prop1 = new Properties JavaDoc();
92          Properties JavaDoc prop2 = new Properties JavaDoc();
93          Properties JavaDoc prop3 = new Properties JavaDoc();
94          
95          prop1.setProperty("oss.test.prop1.static", "prop1static");
96          prop1.setProperty("oss.test.prop1.toberedefined1", "prop1toberedefined1");
97          prop1.setProperty("oss.test.prop1.toberedefined2", "prop1toberedefined2");
98          prop1.setProperty("oss.test.prop1.toberedefinedtwice", "prop1toberedefinedtwice");
99    
100          prop2.setProperty("oss.test.prop2.static", "prop2static");
101          prop2.setProperty("oss.test.prop2.toberedefined", "prop2toberedefined");
102          prop2.setProperty("oss.test.prop1.toberedefined1", "prop2");
103          prop2.setProperty("oss.test.prop1.toberedefinedtwice", "prop2redefined");
104          prop2.setProperty(Config.DEPENDENT_CONFIG_FILE_NAME, prop1file.getCanonicalPath());
105    
106          prop3.setProperty("oss.test.prop3.static", "prop3static");
107          prop3.setProperty("oss.test.prop2.toberedefined", "prop31");
108          prop3.setProperty("oss.test.prop1.toberedefined2", "prop32");
109          prop3.setProperty("oss.test.prop1.toberedefinedtwice", "prop3redefined");
110          prop3.setProperty(Config.DEPENDENT_CONFIG_FILE_NAME, prop2file.getCanonicalPath());
111          
112          // Now store the properties
113
Config.save(prop1file, prop1);
114          Config.save(prop2file, prop2);
115          Config.save(prop3file, prop3);
116          
117          // And now start testing that the properties are correctly read
118
Config config1 = new Config(prop1file.getCanonicalPath());
119          Config config2 = new Config(prop2file.getCanonicalPath());
120          Config config3 = new Config(prop3file.getCanonicalPath());
121          
122          Properties JavaDoc prop1test = config1.getPropertiesSafely();
123          Properties JavaDoc prop2test = config2.getPropertiesSafely();
124          Properties JavaDoc prop3test = config3.getPropertiesSafely();
125          String JavaDoc strTemp;
126          
127          assertEquals("Incorrect number of properties read from file",
128                       prop1test.size(), 4);
129          
130          strTemp = prop1test.getProperty("oss.test.prop1.static");
131          assertNotNull("Expected property doesn't exist.", strTemp);
132          assertEquals("Property doesn't have actual value.", "prop1static", strTemp);
133          
134          strTemp = prop1test.getProperty("oss.test.prop1.toberedefined1");
135          assertNotNull("Expected property doesn't exist.", strTemp);
136          assertEquals("Property doesn't have actual value.", "prop1toberedefined1", strTemp);
137          
138          strTemp = prop1test.getProperty("oss.test.prop1.toberedefined2");
139          assertNotNull("Expected property doesn't exist.", strTemp);
140          assertEquals("Property doesn't have actual value.", "prop1toberedefined2", strTemp);
141          
142          strTemp = prop1test.getProperty("oss.test.prop1.toberedefinedtwice");
143          assertNotNull("Expected property doesn't exist.", strTemp);
144          assertEquals("Property doesn't have actual value.", "prop1toberedefinedtwice", strTemp);
145          
146          assertEquals("Incorrect number of properties read from file",
147                       prop2test.size(), 7);
148          
149          strTemp = prop2test.getProperty("oss.test.prop1.static");
150          assertNotNull("Expected property doesn't exist.", strTemp);
151          assertEquals("Property doesn't have actual value.", "prop1static", strTemp);
152          
153          strTemp = prop2test.getProperty("oss.test.prop1.toberedefined1");
154          assertNotNull("Expected property doesn't exist.", strTemp);
155          assertEquals("Property doesn't have actual value.", "prop2", strTemp);
156          
157          strTemp = prop2test.getProperty("oss.test.prop1.toberedefined2");
158          assertNotNull("Expected property doesn't exist.", strTemp);
159          assertEquals("Property doesn't have actual value.", "prop1toberedefined2", strTemp);
160
161          strTemp = prop2test.getProperty("oss.test.prop1.toberedefinedtwice");
162          assertNotNull("Expected property doesn't exist.", strTemp);
163          assertEquals("Property doesn't have actual value.", "prop2redefined", strTemp);
164          
165          strTemp = prop2test.getProperty("oss.test.prop2.static");
166          assertNotNull("Expected property doesn't exist.", strTemp);
167          assertEquals("Property doesn't have actual value.", "prop2static", strTemp);
168          
169          strTemp = prop2test.getProperty("oss.test.prop2.toberedefined");
170          assertNotNull("Expected property doesn't exist.", strTemp);
171          assertEquals("Property doesn't have actual value.", "prop2toberedefined", strTemp);
172
173          strTemp = prop2test.getProperty(Config.DEPENDENT_CONFIG_FILE_NAME);
174          assertNotNull("Expected property doesn't exist.", strTemp);
175          assertEquals("Property doesn't have actual value.",
176                       prop1file.getCanonicalPath(), strTemp);
177
178          assertEquals("Incorrect number of properties read from file",
179                       prop3test.size(), 8);
180          
181          strTemp = prop3test.getProperty("oss.test.prop1.static");
182          assertNotNull("Expected property doesn't exist.", strTemp);
183          assertEquals("Property doesn't have actual value.", "prop1static", strTemp);
184          
185          strTemp = prop3test.getProperty("oss.test.prop1.toberedefined1");
186          assertNotNull("Expected property doesn't exist.", strTemp);
187          assertEquals("Property doesn't have actual value.", "prop2", strTemp);
188          
189          strTemp = prop3test.getProperty("oss.test.prop1.toberedefined2");
190          assertNotNull("Expected property doesn't exist.", strTemp);
191          assertEquals("Property doesn't have actual value.", "prop32", strTemp);
192
193          strTemp = prop3test.getProperty("oss.test.prop1.toberedefinedtwice");
194          assertNotNull("Expected property doesn't exist.", strTemp);
195          assertEquals("Property doesn't have actual value.", "prop3redefined", strTemp);
196          
197          strTemp = prop3test.getProperty("oss.test.prop2.static");
198          assertNotNull("Expected property doesn't exist.", strTemp);
199          assertEquals("Property doesn't have actual value.", "prop2static", strTemp);
200          
201          strTemp = prop3test.getProperty("oss.test.prop2.toberedefined");
202          assertNotNull("Expected property doesn't exist.", strTemp);
203          assertEquals("Property doesn't have actual value.", "prop31", strTemp);
204
205          strTemp = prop3test.getProperty("oss.test.prop3.static");
206          assertNotNull("Expected property doesn't exist.", strTemp);
207          assertEquals("Property doesn't have actual value.", "prop3static", strTemp);
208
209          strTemp = prop3test.getProperty(Config.DEPENDENT_CONFIG_FILE_NAME);
210          assertNotNull("Expected property doesn't exist.", strTemp);
211          assertEquals("Property doesn't have actual value.",
212                       prop2file.getCanonicalPath(), strTemp);
213       }
214       finally
215       {
216          try
217          {
218             if (prop1file != null)
219             {
220                prop1file.delete();
221             }
222          }
223          finally
224          {
225             try
226             {
227                if (prop2file != null)
228                {
229                   prop1file.delete();
230                }
231             }
232             finally
233             {
234                if (prop3file != null)
235                {
236                   prop1file.delete();
237                }
238             }
239          }
240       }
241    }
242 }
243
Popular Tags