1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration2.builder.fluent;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertNotNull;
21 import static org.junit.jupiter.api.Assertions.assertSame;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23
24 import java.io.File;
25 import java.net.URL;
26 import java.util.Map;
27
28 import org.apache.commons.configuration2.CombinedConfiguration;
29 import org.apache.commons.configuration2.Configuration;
30 import org.apache.commons.configuration2.ConfigurationAssert;
31 import org.apache.commons.configuration2.INIConfiguration;
32 import org.apache.commons.configuration2.PropertiesConfiguration;
33 import org.apache.commons.configuration2.XMLConfiguration;
34 import org.apache.commons.configuration2.builder.BasicConfigurationBuilder;
35 import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
36 import org.apache.commons.configuration2.builder.combined.CombinedConfigurationBuilder;
37 import org.apache.commons.configuration2.ex.ConfigurationException;
38 import org.apache.commons.configuration2.plist.PropertyListConfiguration;
39 import org.junit.jupiter.api.Test;
40
41
42
43
44 public class TestConfigurations {
45
46 private static final String TEST_PROPERTIES = "test.properties";
47
48
49 private static final String TEST_XML = "test.xml";
50
51
52 private static final String TEST_INI = "test.ini";
53
54
55 private static final String TEST_COMBINED = "testDigesterConfiguration.xml";
56
57
58 private static final String TEST_PLIST = "test.plist";
59
60
61
62
63
64
65
66 private static String absolutePath(final String name) {
67 return ConfigurationAssert.getTestFile(name).getAbsolutePath();
68 }
69
70
71
72
73
74
75 private static void checkCombined(final Configuration config) {
76 checkProperties(config);
77 checkXML(config);
78 }
79
80
81
82
83
84
85 private static void checkINI(final INIConfiguration config) {
86 assertEquals("yes", config.getProperty("testini.loaded"));
87 }
88
89
90
91
92
93
94 private static void checkPList(final Configuration config) {
95 assertEquals("string1", config.getProperty("simple-string"));
96 }
97
98
99
100
101
102
103 private static void checkProperties(final Configuration config) {
104 assertEquals("true", config.getString("configuration.loaded"));
105 }
106
107
108
109
110
111
112 private static void checkXML(final Configuration config) {
113 assertEquals("value", config.getProperty("element"));
114 }
115
116
117
118
119 @Test
120 void testCombinedBuilderFromFile() throws ConfigurationException {
121 final Configurations configs = new Configurations();
122 final CombinedConfigurationBuilder builder = configs.combinedBuilder(ConfigurationAssert.getTestFile(TEST_COMBINED));
123 checkCombined(builder.getConfiguration());
124 }
125
126
127
128
129 @Test
130 void testCombinedBuilderFromPath() throws ConfigurationException {
131 final Configurations configs = new Configurations();
132 final CombinedConfigurationBuilder builder = configs.combinedBuilder(absolutePath(TEST_COMBINED));
133 checkCombined(builder.getConfiguration());
134 }
135
136
137
138
139 @Test
140 void testCombinedBuilderFromURL() throws ConfigurationException {
141 final Configurations configs = new Configurations();
142 final CombinedConfigurationBuilder builder = configs.combinedBuilder(ConfigurationAssert.getTestURL(TEST_COMBINED));
143 checkCombined(builder.getConfiguration());
144 }
145
146
147
148
149 @Test
150 void testCombinedFromFile() throws ConfigurationException {
151 final Configurations configs = new Configurations();
152 final CombinedConfiguration config = configs.combined(ConfigurationAssert.getTestFile(TEST_COMBINED));
153 checkCombined(config);
154 }
155
156
157
158
159 @Test
160 void testCombinedFromPath() throws ConfigurationException {
161 final Configurations configs = new Configurations();
162 final CombinedConfiguration config = configs.combined(absolutePath(TEST_COMBINED));
163 checkCombined(config);
164 }
165
166
167
168
169 @Test
170 void testCombinedFromURL() throws ConfigurationException {
171 final Configurations configs = new Configurations();
172 final CombinedConfiguration config = configs.combined(ConfigurationAssert.getTestURL(TEST_COMBINED));
173 checkCombined(config);
174 }
175
176
177
178
179 @Test
180 void testDefaultParameters() {
181 final Configurations configs = new Configurations();
182 assertNotNull(configs.getParameters());
183 }
184
185
186
187
188 @Test
189 void testFileBasedBuilderWithFile() {
190 final Configurations configs = new Configurations();
191 final File file = ConfigurationAssert.getTestFile(TEST_PROPERTIES);
192 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.fileBasedBuilder(PropertiesConfiguration.class, file);
193 assertEquals(file.toURI(), builder.getFileHandler().getFile().toURI());
194 }
195
196
197
198
199 @Test
200 void testFileBasedBuilderWithPath() {
201 final Configurations configs = new Configurations();
202 final String filePath = absolutePath(TEST_PROPERTIES);
203 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.fileBasedBuilder(PropertiesConfiguration.class, filePath);
204 assertEquals(filePath, builder.getFileHandler().getFileName());
205 }
206
207
208
209
210 @Test
211 void testFileBasedBuilderWithURL() {
212 final Configurations configs = new Configurations();
213 final URL url = ConfigurationAssert.getTestURL("test.properties");
214 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.fileBasedBuilder(PropertiesConfiguration.class, url);
215 assertEquals(url, builder.getFileHandler().getURL());
216 }
217
218
219
220
221 @Test
222 void testFileBasedFile() throws ConfigurationException {
223 final Configurations configs = new Configurations();
224 final PropertyListConfiguration config = configs.fileBased(PropertyListConfiguration.class, ConfigurationAssert.getTestFile(TEST_PLIST));
225 checkPList(config);
226 }
227
228
229
230
231 @Test
232 void testFileBasedPath() throws ConfigurationException {
233 final Configurations configs = new Configurations();
234 final PropertyListConfiguration config = configs.fileBased(PropertyListConfiguration.class, absolutePath(TEST_PLIST));
235 checkPList(config);
236 }
237
238
239
240
241 @Test
242 void testFileBasedURL() throws ConfigurationException {
243 final Configurations configs = new Configurations();
244 final PropertyListConfiguration config = configs.fileBased(PropertyListConfiguration.class, ConfigurationAssert.getTestURL(TEST_PLIST));
245 checkPList(config);
246 }
247
248
249
250
251 @Test
252 void testINIBuilderFromFile() throws ConfigurationException {
253 final Configurations configs = new Configurations();
254 final FileBasedConfigurationBuilder<INIConfiguration> builder = configs.iniBuilder(ConfigurationAssert.getTestFile(TEST_INI));
255 checkINI(builder.getConfiguration());
256 }
257
258
259
260
261 @Test
262 void testINIBuilderFromPath() throws ConfigurationException {
263 final Configurations configs = new Configurations();
264 final FileBasedConfigurationBuilder<INIConfiguration> builder = configs.iniBuilder(absolutePath(TEST_INI));
265 checkINI(builder.getConfiguration());
266 }
267
268
269
270
271 @Test
272 void testINIBuilderFromURL() throws ConfigurationException {
273 final Configurations configs = new Configurations();
274 final FileBasedConfigurationBuilder<INIConfiguration> builder = configs.iniBuilder(ConfigurationAssert.getTestURL(TEST_INI));
275 checkINI(builder.getConfiguration());
276 }
277
278
279
280
281 @Test
282 void testINIFromFile() throws ConfigurationException {
283 final Configurations configs = new Configurations();
284 final INIConfiguration config = configs.ini(ConfigurationAssert.getTestFile(TEST_INI));
285 checkINI(config);
286 }
287
288
289
290
291 @Test
292 void testINIFromPath() throws ConfigurationException {
293 final Configurations configs = new Configurations();
294 final INIConfiguration config = configs.ini(absolutePath(TEST_INI));
295 checkINI(config);
296 }
297
298
299
300
301 @Test
302 void testINIFromURL() throws ConfigurationException {
303 final Configurations configs = new Configurations();
304 final INIConfiguration config = configs.ini(ConfigurationAssert.getTestURL(TEST_INI));
305 checkINI(config);
306 }
307
308
309
310
311 @Test
312 void testInitWithParameters() {
313 final Parameters params = new Parameters();
314 final Configurations configs = new Configurations(params);
315 assertSame(params, configs.getParameters());
316 }
317
318
319
320
321 @Test
322 void testPropertiesBuilderFromFile() throws ConfigurationException {
323 final Configurations configs = new Configurations();
324 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.propertiesBuilder(ConfigurationAssert.getTestFile(TEST_PROPERTIES));
325 checkProperties(builder.getConfiguration());
326 }
327
328
329
330
331 @Test
332 void testPropertiesBuilderFromPath() throws ConfigurationException {
333 final Configurations configs = new Configurations();
334 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.propertiesBuilder(absolutePath(TEST_PROPERTIES));
335 checkProperties(builder.getConfiguration());
336 }
337
338
339
340
341
342 @Test
343 void testPropertiesBuilderFromPathIncludeNotFoundFail() {
344 final Configurations configs = new Configurations();
345 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.propertiesBuilder(absolutePath("include-not-found.properties"));
346 assertThrows(ConfigurationException.class, builder::getConfiguration);
347 }
348
349
350
351
352
353 @Test
354 void testPropertiesBuilderFromPathIncludeNotFoundPass() throws ConfigurationException {
355 final Configurations configs = new Configurations();
356 final String absPath = absolutePath("include-not-found.properties");
357 final FileBasedConfigurationBuilder<PropertiesConfiguration> builderFail = configs.propertiesBuilder(absPath);
358 assertThrows(ConfigurationException.class, builderFail::getConfiguration);
359 assertThrows(ConfigurationException.class, () -> configs.properties(absPath));
360
361
362 final Map<String, Object> map =
363 new Parameters().properties()
364 .setPath(absPath)
365 .setIncludeListener(PropertiesConfiguration.NOOP_INCLUDE_LISTENER)
366 .getParameters();
367
368 final BasicConfigurationBuilder<PropertiesConfiguration> builderOk = configs.propertiesBuilder(absPath).addParameters(map);
369 assertEquals("valueA", builderOk.getConfiguration().getString("keyA"));
370
371
372 final BasicConfigurationBuilder<PropertiesConfiguration> builderOk2 = configs.propertiesBuilder(
373 new Parameters().properties()
374 .setPath(absPath)
375 .setIncludeListener(PropertiesConfiguration.NOOP_INCLUDE_LISTENER));
376
377 assertEquals("valueA", builderOk2.getConfiguration().getString("keyA"));
378 }
379
380
381
382
383 @Test
384 void testPropertiesBuilderFromURL() throws ConfigurationException {
385 final Configurations configs = new Configurations();
386 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.propertiesBuilder(ConfigurationAssert.getTestURL(TEST_PROPERTIES));
387 checkProperties(builder.getConfiguration());
388 }
389
390
391
392
393 @Test
394 void testPropertiesFromFile() throws ConfigurationException {
395 final Configurations configs = new Configurations();
396 final PropertiesConfiguration config = configs.properties(ConfigurationAssert.getTestFile(TEST_PROPERTIES));
397 checkProperties(config);
398 }
399
400
401
402
403 @Test
404 void testPropertiesFromPath() throws ConfigurationException {
405 final Configurations configs = new Configurations();
406 final PropertiesConfiguration config = configs.properties(absolutePath(TEST_PROPERTIES));
407 checkProperties(config);
408 }
409
410
411
412
413 @Test
414 void testPropertiesFromURL() throws ConfigurationException {
415 final Configurations configs = new Configurations();
416 final PropertiesConfiguration config = configs.properties(ConfigurationAssert.getTestURL(TEST_PROPERTIES));
417 checkProperties(config);
418 }
419
420
421
422
423 @Test
424 void testXMLBuilderFromFile() throws ConfigurationException {
425 final Configurations configs = new Configurations();
426 final FileBasedConfigurationBuilder<XMLConfiguration> builder = configs.xmlBuilder(ConfigurationAssert.getTestFile(TEST_XML));
427 checkXML(builder.getConfiguration());
428 }
429
430
431
432
433 @Test
434 void testXMLBuilderFromPath() throws ConfigurationException {
435 final Configurations configs = new Configurations();
436 final FileBasedConfigurationBuilder<XMLConfiguration> builder = configs.xmlBuilder(absolutePath(TEST_XML));
437 checkXML(builder.getConfiguration());
438 }
439
440
441
442
443 @Test
444 void testXMLBuilderFromURL() throws ConfigurationException {
445 final Configurations configs = new Configurations();
446 final FileBasedConfigurationBuilder<XMLConfiguration> builder = configs.xmlBuilder(ConfigurationAssert.getTestURL(TEST_XML));
447 checkXML(builder.getConfiguration());
448 }
449
450
451
452
453 @Test
454 void testXMLFromFile() throws ConfigurationException {
455 final Configurations configs = new Configurations();
456 final XMLConfiguration config = configs.xml(ConfigurationAssert.getTestFile(TEST_XML));
457 checkXML(config);
458 }
459
460
461
462
463 @Test
464 void testXMLFromPath() throws ConfigurationException {
465 final Configurations configs = new Configurations();
466 final XMLConfiguration config = configs.xml(absolutePath(TEST_XML));
467 checkXML(config);
468 }
469
470
471
472
473 @Test
474 void testXMLFromURL() throws ConfigurationException {
475 final Configurations configs = new Configurations();
476 final XMLConfiguration config = configs.xml(ConfigurationAssert.getTestURL(TEST_XML));
477 checkXML(config);
478 }
479 }