2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 package org.opendaylight.yangtools.yang.data.impl.schema.nodes;
6 import static org.junit.Assert.*;
9 import org.opendaylight.yangtools.yang.common.QName;
10 import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
11 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
13 public class AbstractImmutableNormalizedValueAttrNodeTest {
15 private static QName ROOT_QNAME = QName.create("urn:test", "2014-03-13",
17 private static QName LEAF_QNAME = QName.create(ROOT_QNAME, "my-leaf");
18 private static QName SAME_LEAF_QNAME = QName.create(ROOT_QNAME, "my-leaf");
19 private static QName OTHER_LEAF_QNAME = QName.create(ROOT_QNAME,
23 // This test is based on using different references; we're testing equals()
24 @SuppressWarnings({"RedundantStringConstructorCall", "EqualsWithItself"})
25 public void equalsByteTest() {
27 LeafNode<byte[]> leafNodeNull = ImmutableNodes.leafNode(LEAF_QNAME,
29 LeafNode<byte[]> equalLeafNodeNull = ImmutableNodes.leafNode(
30 SAME_LEAF_QNAME, null);
32 assertTrue(leafNodeNull.equals(leafNodeNull));
33 assertTrue(leafNodeNull.equals(equalLeafNodeNull));
34 assertTrue(equalLeafNodeNull.equals(leafNodeNull));
36 byte[] value = "test".getBytes();
37 byte[] equalValue = "test".getBytes();
39 LeafNode<byte[]> leafNode = ImmutableNodes.leafNode(LEAF_QNAME, value);
40 LeafNode<byte[]> equalLeafNode = ImmutableNodes.leafNode(
41 SAME_LEAF_QNAME, equalValue);
43 assertTrue(leafNode.equals(leafNode));
44 assertTrue(leafNode.equals(equalLeafNode));
45 assertTrue(equalLeafNode.equals(leafNode));
47 Byte[] value2 = new Byte[] { new Byte("1"), new Byte("2") };
48 Byte[] equalValue2 = new Byte[] { new Byte("1"), new Byte("2") };
50 LeafNode<Byte[]> leafNode2 = ImmutableNodes
51 .leafNode(LEAF_QNAME, value2);
52 LeafNode<Byte[]> equalLeafNode2 = ImmutableNodes.leafNode(
53 SAME_LEAF_QNAME, equalValue2);
55 assertTrue(leafNode2.equals(leafNode2));
56 assertTrue(leafNode2.equals(equalLeafNode2));
57 assertTrue(equalLeafNode2.equals(leafNode2));
59 byte[][] value3 = new byte[][] { "test".getBytes(), "test2".getBytes() };
60 byte[][] equalValue3 = new byte[][] { "test".getBytes(),
63 LeafNode<byte[][]> leafNode3 = ImmutableNodes.leafNode(LEAF_QNAME,
65 LeafNode<byte[][]> equalLeafNode3 = ImmutableNodes.leafNode(
66 SAME_LEAF_QNAME, equalValue3);
68 assertTrue(leafNode3.equals(leafNode3));
69 assertTrue(leafNode3.equals(equalLeafNode3));
70 assertTrue(equalLeafNode3.equals(leafNode3));
72 Byte[][] value4 = new Byte[][] {
73 new Byte[] { new Byte("1"), new Byte("2") },
74 new Byte[] { new Byte("3"), new Byte("4") } };
75 Byte[][] equalValue4 = new Byte[][] {
76 new Byte[] { new Byte("1"), new Byte("2") },
77 new Byte[] { new Byte("3"), new Byte("4") } };
79 LeafNode<Byte[][]> leafNode4 = ImmutableNodes.leafNode(LEAF_QNAME,
81 LeafNode<Byte[][]> equalLeafNode4 = ImmutableNodes.leafNode(
82 SAME_LEAF_QNAME, equalValue4);
84 assertTrue(leafNode4.equals(leafNode4));
85 assertTrue(leafNode4.equals(equalLeafNode4));
86 assertTrue(equalLeafNode4.equals(leafNode4));
88 Byte value6 = new Byte("1");
89 Byte equalValue6 = new Byte("1");
91 LeafNode<Byte> leafNode6 = ImmutableNodes.leafNode(LEAF_QNAME, value6);
92 LeafNode<Byte> equalLeafNode6 = ImmutableNodes.leafNode(
93 SAME_LEAF_QNAME, equalValue6);
95 assertTrue(leafNode6.equals(leafNode6));
96 assertTrue(leafNode6.equals(equalLeafNode6));
97 assertTrue(equalLeafNode6.equals(leafNode6));
99 String value5 = "test";
100 String equalValue5 = new String("test");
102 LeafNode<String> leafNode5 = ImmutableNodes
103 .leafNode(LEAF_QNAME, value5);
104 LeafNode<String> equalLeafNode5 = ImmutableNodes.leafNode(
105 SAME_LEAF_QNAME, equalValue5);
107 assertTrue(leafNode5.equals(leafNode5));
108 assertTrue(leafNode5.equals(equalLeafNode5));
109 assertTrue(equalLeafNode5.equals(leafNode5));
114 // We're testing equals()
115 @SuppressWarnings({"ObjectEqualsNull", "EqualsBetweenInconvertibleTypes"})
116 public void notEqualByteTest() {
118 byte[] value = "test".getBytes();
119 byte[] equalValue = "test".getBytes();
121 LeafNode<byte[]> leafNode = ImmutableNodes.leafNode(LEAF_QNAME, value);
122 LeafNode<byte[]> otherLeafNode = ImmutableNodes.leafNode(
123 OTHER_LEAF_QNAME, equalValue);
125 assertFalse(leafNode.equals(null));
126 assertFalse(leafNode.equals(new Object()));
127 assertFalse(leafNode.equals(otherLeafNode));
128 assertFalse(otherLeafNode.equals(leafNode));
130 byte[] value1 = "test".getBytes();
131 byte[] otherValue1 = "test1".getBytes();
133 LeafNode<byte[]> leafNode1 = ImmutableNodes
134 .leafNode(LEAF_QNAME, value1);
135 LeafNode<byte[]> otherLeafNode1 = ImmutableNodes.leafNode(
136 SAME_LEAF_QNAME, otherValue1);
138 assertFalse(leafNode1.equals(otherLeafNode1));
139 assertFalse(otherLeafNode1.equals(leafNode1));
141 Byte[] value2 = new Byte[] { new Byte("1"), new Byte("1") };
142 Byte[] otherValue2 = new Byte[] { new Byte("1"), new Byte("2") };
144 LeafNode<Byte[]> leafNode2 = ImmutableNodes
145 .leafNode(LEAF_QNAME, value2);
146 LeafNode<Byte[]> otherLeafNode2 = ImmutableNodes.leafNode(
147 SAME_LEAF_QNAME, otherValue2);
149 assertFalse(leafNode2.equals(otherLeafNode2));
150 assertFalse(otherLeafNode2.equals(leafNode2));
152 byte[][] value3 = new byte[][] { "test".getBytes(), "test2".getBytes() };
153 byte[][] otherValue3 = new byte[][] { "test".getBytes(),
154 "test3".getBytes() };
156 LeafNode<byte[][]> leafNode3 = ImmutableNodes.leafNode(LEAF_QNAME,
158 LeafNode<byte[][]> otherLeafNode3 = ImmutableNodes.leafNode(
159 SAME_LEAF_QNAME, otherValue3);
161 assertFalse(leafNode3.equals(otherLeafNode3));
162 assertFalse(otherLeafNode3.equals(leafNode3));
164 Byte[][] value4 = new Byte[][] {
165 new Byte[] { new Byte("1"), new Byte("2") },
166 new Byte[] { new Byte("3"), new Byte("4") } };
167 Byte[][] otherValue4 = new Byte[][] {
168 new Byte[] { new Byte("1"), new Byte("2") },
169 new Byte[] { new Byte("3"), new Byte("5") } };
171 LeafNode<Byte[][]> leafNode4 = ImmutableNodes.leafNode(LEAF_QNAME,
173 LeafNode<Byte[][]> otherLeafNode4 = ImmutableNodes.leafNode(
174 SAME_LEAF_QNAME, otherValue4);
176 assertFalse(leafNode4.equals(otherLeafNode4));
177 assertFalse(otherLeafNode4.equals(leafNode4));
179 Byte value6 = new Byte("1");
180 Byte otherValue6 = new Byte("2");
182 LeafNode<Byte> leafNode6 = ImmutableNodes.leafNode(LEAF_QNAME, value6);
183 LeafNode<Byte> otherLeafNode6 = ImmutableNodes.leafNode(
184 SAME_LEAF_QNAME, otherValue6);
186 assertFalse(leafNode6.equals(otherLeafNode6));
187 assertFalse(otherLeafNode6.equals(leafNode6));
189 String value5 = "test";
190 String otherValue5 = "test2";
192 LeafNode<String> leafNode5 = ImmutableNodes
193 .leafNode(LEAF_QNAME, value5);
194 LeafNode<String> otherLeafNode5 = ImmutableNodes.leafNode(
195 SAME_LEAF_QNAME, otherValue5);
197 assertFalse(leafNode5.equals(otherLeafNode5));
198 assertFalse(otherLeafNode5.equals(leafNode5));
199 assertFalse(leafNode5.equals(leafNode));
200 assertFalse(leafNode5.equals(leafNode1));
201 assertFalse(leafNode5.equals(leafNode2));
202 assertFalse(leafNode5.equals(leafNode3));
203 assertFalse(leafNode5.equals(leafNode4));
204 assertFalse(leafNode5.equals(leafNode6));
205 assertFalse(leafNode.equals(leafNode5));
206 assertFalse(leafNode1.equals(leafNode5));
207 assertFalse(leafNode2.equals(leafNode5));
208 assertFalse(leafNode3.equals(leafNode5));
209 assertFalse(leafNode4.equals(leafNode5));
210 assertFalse(leafNode6.equals(leafNode5));
212 LeafNode<byte[]> leafNodeNull = ImmutableNodes.leafNode(
213 SAME_LEAF_QNAME, null);
214 assertFalse(leafNodeNull.equals(leafNode));
215 assertFalse(leafNode.equals(leafNodeNull));
217 byte[] byteValue = new byte[] { 1, 1 };
219 LeafNode<byte[]> byteLeafNode = ImmutableNodes.leafNode(
220 SAME_LEAF_QNAME, byteValue);
221 assertFalse(byteLeafNode.equals(leafNode2));
222 assertFalse(leafNode2.equals(byteLeafNode));
227 // We're testing equals()
228 @SuppressWarnings({"EqualsWithItself", "EqualsBetweenInconvertibleTypes"})
229 public void equalsOtherTypesTest() {
231 char[] valueChar = "test".toCharArray();
232 char[] equalValueChar = "test".toCharArray();
234 LeafNode<char[]> leafNodeChar = ImmutableNodes.leafNode(LEAF_QNAME,
236 LeafNode<char[]> equalLeafNodeChar = ImmutableNodes.leafNode(
237 SAME_LEAF_QNAME, equalValueChar);
239 assertTrue(leafNodeChar.equals(leafNodeChar));
240 assertTrue(leafNodeChar.equals(equalLeafNodeChar));
241 assertTrue(equalLeafNodeChar.equals(leafNodeChar));
243 boolean[] value = new boolean[] { true, false };
244 boolean[] equalValue = new boolean[] { true, false };
246 LeafNode<boolean[]> leafNode = ImmutableNodes.leafNode(LEAF_QNAME,
248 LeafNode<boolean[]> equalLeafNode = ImmutableNodes.leafNode(
249 SAME_LEAF_QNAME, equalValue);
251 assertTrue(leafNode.equals(leafNode));
252 assertTrue(leafNode.equals(equalLeafNode));
253 assertTrue(equalLeafNode.equals(leafNode));
255 int[] value2 = new int[] { 1, 2 };
256 int[] equalValue2 = new int[] { 1, 2 };
258 LeafNode<int[]> leafNode2 = ImmutableNodes.leafNode(LEAF_QNAME, value2);
259 LeafNode<int[]> equalLeafNode2 = ImmutableNodes.leafNode(
260 SAME_LEAF_QNAME, equalValue2);
262 assertTrue(leafNode2.equals(leafNode2));
263 assertTrue(leafNode2.equals(equalLeafNode2));
264 assertTrue(equalLeafNode2.equals(leafNode2));
266 short[] value3 = new short[] { 1, 2 };
267 short[] equalValue3 = new short[] { 1, 2 };
269 LeafNode<short[]> leafNode3 = ImmutableNodes.leafNode(LEAF_QNAME,
271 LeafNode<short[]> equalLeafNode3 = ImmutableNodes.leafNode(
272 SAME_LEAF_QNAME, equalValue3);
274 assertTrue(leafNode3.equals(leafNode3));
275 assertTrue(leafNode3.equals(equalLeafNode3));
276 assertTrue(equalLeafNode3.equals(leafNode3));
278 long[] value4 = new long[] { 1, 2 };
279 long[] equalValue4 = new long[] { 1, 2 };
281 LeafNode<long[]> leafNode4 = ImmutableNodes
282 .leafNode(LEAF_QNAME, value4);
283 LeafNode<long[]> equalLeafNode4 = ImmutableNodes.leafNode(
284 SAME_LEAF_QNAME, equalValue4);
286 assertTrue(leafNode4.equals(leafNode4));
287 assertTrue(leafNode4.equals(equalLeafNode4));
288 assertTrue(equalLeafNode4.equals(leafNode4));
290 double[] value6 = new double[] { 1, 2 };
291 double[] equalValue6 = new double[] { 1, 2 };
293 LeafNode<double[]> leafNode6 = ImmutableNodes.leafNode(LEAF_QNAME,
295 LeafNode<double[]> equalLeafNode6 = ImmutableNodes.leafNode(
296 SAME_LEAF_QNAME, equalValue6);
298 assertTrue(leafNode6.equals(leafNode6));
299 assertTrue(leafNode6.equals(equalLeafNode6));
300 assertTrue(equalLeafNode6.equals(leafNode6));
302 float[] value5 = new float[] { 1, 2 };
303 float[] equalValue5 = new float[] { 1, 2 };
305 LeafNode<float[]> leafNode5 = ImmutableNodes.leafNode(LEAF_QNAME,
307 LeafNode<float[]> equalLeafNode5 = ImmutableNodes.leafNode(
308 SAME_LEAF_QNAME, equalValue5);
310 assertTrue(leafNode5.equals(leafNode5));
311 assertTrue(leafNode5.equals(equalLeafNode5));
312 assertTrue(equalLeafNode5.equals(leafNode5));
314 assertFalse(leafNode.equals(leafNode5));
315 assertFalse(leafNode2.equals(leafNode5));
316 assertFalse(leafNode3.equals(leafNode5));
317 assertFalse(leafNode4.equals(leafNode5));
318 assertFalse(leafNodeChar.equals(leafNode5));
319 assertFalse(leafNode6.equals(leafNode5));
321 assertFalse(leafNode5.equals(leafNode));
322 assertFalse(leafNode5.equals(leafNode2));
323 assertFalse(leafNode5.equals(leafNode3));
324 assertFalse(leafNode5.equals(leafNode4));
325 assertFalse(leafNode5.equals(leafNodeChar));
326 assertFalse(leafNode5.equals(leafNode6));