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