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 public 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 public 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 public 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 public 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 public 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 public 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 public void testDefaultParameters() {
181 final Configurations configs = new Configurations();
182 assertNotNull(configs.getParameters());
183 }
184
185
186
187
188 @Test
189 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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
363 final Map<String, Object> map =
364 new Parameters().properties()
365 .setPath(absPath)
366 .setIncludeListener(PropertiesConfiguration.NOOP_INCLUDE_LISTENER)
367 .getParameters();
368
369 final BasicConfigurationBuilder<PropertiesConfiguration> builderOk = configs.propertiesBuilder(absPath).addParameters(map);
370 final PropertiesConfiguration configuration = builderOk.getConfiguration();
371 assertEquals("valueA", configuration.getString("keyA"));
372 }
373 {
374
375
376 final BasicConfigurationBuilder<PropertiesConfiguration> builderOk = configs.propertiesBuilder(
377 new Parameters().properties()
378 .setPath(absPath)
379 .setIncludeListener(PropertiesConfiguration.NOOP_INCLUDE_LISTENER));
380
381 final PropertiesConfiguration configuration = builderOk.getConfiguration();
382 assertEquals("valueA", configuration.getString("keyA"));
383 }
384 }
385
386
387
388
389 @Test
390 public void testPropertiesBuilderFromURL() throws ConfigurationException {
391 final Configurations configs = new Configurations();
392 final FileBasedConfigurationBuilder<PropertiesConfiguration> builder = configs.propertiesBuilder(ConfigurationAssert.getTestURL(TEST_PROPERTIES));
393 checkProperties(builder.getConfiguration());
394 }
395
396
397
398
399 @Test
400 public void testPropertiesFromFile() throws ConfigurationException {
401 final Configurations configs = new Configurations();
402 final PropertiesConfiguration config = configs.properties(ConfigurationAssert.getTestFile(TEST_PROPERTIES));
403 checkProperties(config);
404 }
405
406
407
408
409 @Test
410 public void testPropertiesFromPath() throws ConfigurationException {
411 final Configurations configs = new Configurations();
412 final PropertiesConfiguration config = configs.properties(absolutePath(TEST_PROPERTIES));
413 checkProperties(config);
414 }
415
416
417
418
419 @Test
420 public void testPropertiesFromURL() throws ConfigurationException {
421 final Configurations configs = new Configurations();
422 final PropertiesConfiguration config = configs.properties(ConfigurationAssert.getTestURL(TEST_PROPERTIES));
423 checkProperties(config);
424 }
425
426
427
428
429 @Test
430 public void testXMLBuilderFromFile() throws ConfigurationException {
431 final Configurations configs = new Configurations();
432 final FileBasedConfigurationBuilder<XMLConfiguration> builder = configs.xmlBuilder(ConfigurationAssert.getTestFile(TEST_XML));
433 checkXML(builder.getConfiguration());
434 }
435
436
437
438
439 @Test
440 public void testXMLBuilderFromPath() throws ConfigurationException {
441 final Configurations configs = new Configurations();
442 final FileBasedConfigurationBuilder<XMLConfiguration> builder = configs.xmlBuilder(absolutePath(TEST_XML));
443 checkXML(builder.getConfiguration());
444 }
445
446
447
448
449 @Test
450 public void testXMLBuilderFromURL() throws ConfigurationException {
451 final Configurations configs = new Configurations();
452 final FileBasedConfigurationBuilder<XMLConfiguration> builder = configs.xmlBuilder(ConfigurationAssert.getTestURL(TEST_XML));
453 checkXML(builder.getConfiguration());
454 }
455
456
457
458
459 @Test
460 public void testXMLFromFile() throws ConfigurationException {
461 final Configurations configs = new Configurations();
462 final XMLConfiguration config = configs.xml(ConfigurationAssert.getTestFile(TEST_XML));
463 checkXML(config);
464 }
465
466
467
468
469 @Test
470 public void testXMLFromPath() throws ConfigurationException {
471 final Configurations configs = new Configurations();
472 final XMLConfiguration config = configs.xml(absolutePath(TEST_XML));
473 checkXML(config);
474 }
475
476
477
478
479 @Test
480 public void testXMLFromURL() throws ConfigurationException {
481 final Configurations configs = new Configurations();
482 final XMLConfiguration config = configs.xml(ConfigurationAssert.getTestURL(TEST_XML));
483 checkXML(config);
484 }
485 }