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