1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration2.tree;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21
22 import org.apache.commons.configuration2.BaseHierarchicalConfiguration;
23 import org.apache.commons.configuration2.ex.ConfigurationException;
24 import org.junit.jupiter.api.Test;
25
26
27
28
29 public class TestUnionCombiner extends AbstractCombinerTest {
30
31
32
33
34
35 @Override
36 protected NodeCombiner createCombiner() {
37 return new UnionCombiner();
38 }
39
40
41
42
43 @Test
44 public void testAttributes() throws ConfigurationException {
45 final BaseHierarchicalConfiguration config = createCombinedConfiguration();
46 assertEquals(0, config.getMaxIndex("database.tables.table(0)[@id]"));
47 assertEquals(1, config.getInt("database.tables.table(0)[@id](0)"));
48 }
49
50
51
52
53 @Test
54 public void testLists() throws ConfigurationException {
55 final BaseHierarchicalConfiguration config = createCombinedConfiguration();
56 assertEquals(2, config.getMaxIndex("net.service.url"));
57 assertEquals("http://service1.org", config.getString("net.service.url(0)"));
58 assertEquals("http://service2.org", config.getString("net.service.url(1)"));
59 assertEquals(2, config.getInt("net.service.url(2)[@type]"));
60 assertEquals(3, config.getMaxIndex("net.server.url"));
61 }
62
63
64
65
66 @Test
67 public void testSimpleValues() throws ConfigurationException {
68 final BaseHierarchicalConfiguration config = createCombinedConfiguration();
69 assertEquals(1, config.getMaxIndex("gui.bgcolor"));
70 assertEquals("green", config.getString("gui.bgcolor(0)"));
71 assertEquals("black", config.getString("gui.bgcolor(1)"));
72 assertEquals(0, config.getMaxIndex("gui.selcolor"));
73 assertEquals("yellow", config.getString("gui.selcolor"));
74 }
75
76
77
78
79 @Test
80 public void testSimpleValuesWithAttributes() throws ConfigurationException {
81 final BaseHierarchicalConfiguration config = createCombinedConfiguration();
82 assertEquals(1, config.getMaxIndex("gui.level"));
83 assertEquals(1, config.getInt("gui.level(0)"));
84 assertEquals(4, config.getInt("gui.level(1)"));
85 assertEquals(2, config.getInt("gui.level(0)[@default]"));
86 assertFalse(config.containsKey("gui.level(0)[@min]"));
87 assertEquals(1, config.getInt("gui.level(1)[@min]"));
88 }
89
90
91
92
93
94 @Test
95 public void testTableList() throws ConfigurationException {
96 combiner.addListNode("table");
97 final BaseHierarchicalConfiguration config = createCombinedConfiguration();
98 assertEquals("documents", config.getString("database.tables.table(0).name"));
99 assertEquals(1, config.getInt("database.tables.table(0)[@id]"));
100 assertEquals("tasks", config.getString("database.tables.table(1).name"));
101 assertEquals(2, config.getInt("database.tables.table(1)[@id]"));
102 }
103 }