1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.configuration2;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertFalse;
22
23
24
25
26 import java.io.FileReader;
27 import java.io.IOException;
28 import java.util.ArrayList;
29 import java.util.List;
30
31 import org.apache.commons.configuration2.ex.ConfigurationException;
32 import org.junit.jupiter.api.Test;
33
34
35
36
37
38 public class TestSubsetConfiguration848 {
39
40 @Test
41 void testSubsetConfigurationWithIndexAndDelimiter() throws ConfigurationException, IOException {
42 final JSONConfiguration jsonConfiguration = new JSONConfiguration();
43 try (FileReader in = new FileReader(ConfigurationAssert.getTestFile("test-configuration-848.json").getAbsolutePath())) {
44 jsonConfiguration.read(in);
45 }
46
47 final List<Configuration> list = new ArrayList<>();
48 list.add(jsonConfiguration);
49 list.add(jsonConfiguration);
50 final CompositeConfiguration composite = new CompositeConfiguration(list);
51 Configuration subset = composite.subset("books(0).details");
52 assertFalse(subset.isEmpty());
53 assertEquals(2, subset.size());
54 assertEquals("No Longer Human", subset.getString("title"));
55
56 subset = new SubsetConfiguration(jsonConfiguration, "books(0).details", ".");
57 assertFalse(subset.isEmpty());
58 assertEquals(2, subset.size());
59 assertEquals("No Longer Human", subset.getString("title"));
60
61 subset = new SubsetConfiguration(jsonConfiguration, "books(1)@details", "@");
62 assertFalse(subset.isEmpty());
63 assertEquals(2, subset.size());
64
65
66 }
67
68 @Test
69 void testSubsetWithJSONConfiguration() throws ConfigurationException, IOException {
70 final JSONConfiguration jsonConfiguration = new JSONConfiguration();
71 try (FileReader in = new FileReader(ConfigurationAssert.getTestFile("test-configuration-848.json").getAbsolutePath())) {
72 jsonConfiguration.read(in);
73 }
74 final SubsetConfiguration subset = new SubsetConfiguration(jsonConfiguration, "capitals(0)", ".");
75 assertFalse(subset.isEmpty());
76 assertEquals(2, subset.size());
77 assertEquals("USA", subset.getString("country"));
78 }
79 }