1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.configuration2.tree.xpath;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertInstanceOf;
22 import static org.junit.jupiter.api.Assertions.assertNull;
23 import static org.junit.jupiter.api.Assertions.assertSame;
24 import static org.junit.jupiter.api.Assertions.assertThrows;
25 import static org.junit.jupiter.api.Assertions.assertTrue;
26
27 import java.util.Locale;
28
29 import org.apache.commons.configuration2.tree.ImmutableNode;
30 import org.apache.commons.configuration2.tree.InMemoryNodeModel;
31 import org.apache.commons.configuration2.tree.QueryResult;
32 import org.apache.commons.jxpath.ri.Compiler;
33 import org.apache.commons.jxpath.ri.QName;
34 import org.apache.commons.jxpath.ri.compiler.NodeTest;
35 import org.apache.commons.jxpath.ri.compiler.NodeTypeTest;
36 import org.junit.jupiter.api.BeforeEach;
37 import org.junit.jupiter.api.Test;
38
39
40
41
42 public class TestConfigurationAttributePointer {
43
44
45 private static final String ATTR_NAME = "myAttr";
46
47
48 private static final String ATTR_VALUE = "myValue";
49
50
51 private ConfigurationNodePointer<ImmutableNode> parent;
52
53
54 private ConfigurationAttributePointer<ImmutableNode> pointer;
55
56 @BeforeEach
57 public void setUp() throws Exception {
58 final ImmutableNode.Builder ndBuilder = new ImmutableNode.Builder();
59 ndBuilder.name("parent").addAttribute(ATTR_NAME, ATTR_VALUE);
60 final ImmutableNode nd = ndBuilder.create();
61 parent = new ConfigurationNodePointer<>(nd, Locale.ROOT, new InMemoryNodeModel(nd).getNodeHandler());
62 pointer = new ConfigurationAttributePointer<>(parent, ATTR_NAME);
63 }
64
65
66
67
68 @Test
69 void testAttributeIterator() {
70 assertNull(pointer.attributeIterator(new QName(null, "test")));
71 }
72
73
74
75
76 @Test
77 void testChildIterator() {
78 assertNull(pointer.childIterator(null, false, null));
79 }
80
81
82
83
84 @Test
85 void testGetBaseValue() {
86 assertEquals(ATTR_VALUE, pointer.getBaseValue());
87 }
88
89
90
91
92 @Test
93 void testGetImmediateNode() {
94 final Object node = pointer.getImmediateNode();
95 final QueryResult<?> proxy = assertInstanceOf(QueryResult.class, node);
96 assertTrue(proxy.isAttributeResult());
97 assertEquals(parent.getConfigurationNode(), proxy.getNode());
98 assertEquals(ATTR_NAME, proxy.getAttributeName());
99 }
100
101
102
103
104 @Test
105 void testGetLength() {
106 assertEquals(1, pointer.getLength());
107 }
108
109
110
111
112 @Test
113 void testGetName() {
114 final QName qName = pointer.getName();
115 assertEquals(ATTR_NAME, qName.getName());
116 assertNull(qName.getPrefix());
117 }
118
119
120
121
122 @Test
123 void testGetParentPointer() {
124 assertSame(parent, pointer.getParentPointer());
125 }
126
127
128
129
130 @Test
131 void testGetValue() {
132 assertEquals(ATTR_VALUE, pointer.getValue());
133 }
134
135
136
137
138 @Test
139 void testIsAttribute() {
140 assertTrue(pointer.isAttribute());
141 }
142
143
144
145
146 @Test
147 void testIsCollection() {
148 assertFalse(pointer.isCollection());
149 }
150
151
152
153
154 @Test
155 void testIsLeaf() {
156 assertTrue(pointer.isLeaf());
157 }
158
159
160
161
162 @Test
163 void testSetValue() {
164 assertThrows(UnsupportedOperationException.class, () -> pointer.setValue("newValue"));
165 }
166
167
168
169
170 @Test
171 void testTestNode() {
172 NodeTest test = new NodeTypeTest(Compiler.NODE_TYPE_TEXT);
173 assertTrue(pointer.testNode(test));
174 test = new NodeTypeTest(Compiler.NODE_TYPE_COMMENT);
175 assertFalse(pointer.testNode(test));
176 }
177 }