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.apache.commons.configuration2.ConfigurationAssert.checkEquals;
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertFalse;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23 import static org.junit.jupiter.api.Assertions.assertTrue;
24
25 import org.junit.jupiter.api.BeforeAll;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 public class TestQueryResult {
32
33 private static final String ATTR = "testAttribute";
34
35
36 private static final Object VALUE = "Value of my attribute";
37
38
39 private static ImmutableNode resultNode;
40
41
42 private static ImmutableNode attributeNode;
43
44 @BeforeAll
45 public static void setUpBeforeClass() {
46 resultNode = new ImmutableNode.Builder().name("resultNode").value(42).create();
47 attributeNode = new ImmutableNode.Builder().name("attributeNode").addAttribute(ATTR, VALUE).create();
48 }
49
50
51
52
53 @Test
54 void testEqualsFalse() {
55 final QueryResult<ImmutableNode> nodeRes = QueryResult.createNodeResult(resultNode);
56 final QueryResult<ImmutableNode> attrRes = QueryResult.createAttributeResult(attributeNode, ATTR);
57 checkEquals(nodeRes, attrRes, false);
58 QueryResult<ImmutableNode> res = QueryResult.createNodeResult(attributeNode);
59 checkEquals(nodeRes, res, false);
60 res = QueryResult.createAttributeResult(attributeNode, "otherAttr");
61 checkEquals(attrRes, res, false);
62 res = QueryResult.createAttributeResult(resultNode, ATTR);
63 checkEquals(attrRes, res, false);
64 }
65
66
67
68
69 @Test
70 void testEqualsOtherObjects() {
71 final QueryResult<ImmutableNode> result = QueryResult.createNodeResult(resultNode);
72 checkEquals(result, null, false);
73 checkEquals(result, this, false);
74 }
75
76
77
78
79 @Test
80 void testEqualsTrue() {
81 QueryResult<ImmutableNode> r1 = QueryResult.createNodeResult(resultNode);
82 checkEquals(r1, r1, true);
83 QueryResult<ImmutableNode> r2 = QueryResult.createNodeResult(resultNode);
84 checkEquals(r1, r2, true);
85 r1 = QueryResult.createAttributeResult(attributeNode, ATTR);
86 r2 = QueryResult.createAttributeResult(attributeNode, ATTR);
87 checkEquals(r1, r2, true);
88 }
89
90
91
92
93 @Test
94 void testGetAttributeValue() {
95 final QueryResult<ImmutableNode> result = QueryResult.createAttributeResult(attributeNode, ATTR);
96 assertEquals(VALUE, result.getAttributeValue(new InMemoryNodeModel().getNodeHandler()));
97 }
98
99
100
101
102 @Test
103 void testGetAttributeValueNoAttributeResult() {
104 final QueryResult<ImmutableNode> result = QueryResult.createNodeResult(resultNode);
105 final NodeHandler<ImmutableNode> nodeHandler = new InMemoryNodeModel().getNodeHandler();
106 assertThrows(IllegalStateException.class, () -> result.getAttributeValue(nodeHandler));
107 }
108
109
110
111
112 @Test
113 void testIsAttributeResultFalse() {
114 final QueryResult<ImmutableNode> result = QueryResult.createNodeResult(resultNode);
115 assertFalse(result.isAttributeResult());
116 }
117
118
119
120
121 @Test
122 void testIsAttributeResultTrue() {
123 final QueryResult<ImmutableNode> result = QueryResult.createAttributeResult(attributeNode, ATTR);
124 assertTrue(result.isAttributeResult());
125 }
126
127
128
129
130 @Test
131 void testToStringAttributeResult() {
132 final QueryResult<ImmutableNode> result = QueryResult.createAttributeResult(attributeNode, ATTR);
133 final String s = result.toString();
134 assertTrue(s.contains("attribute=" + ATTR));
135 assertTrue(s.contains("parentNode=" + attributeNode));
136 }
137
138
139
140
141 @Test
142 void testToStringNodeResult() {
143 final QueryResult<ImmutableNode> result = QueryResult.createNodeResult(resultNode);
144 assertTrue(result.toString().contains("resultNode=" + resultNode));
145 }
146 }