778bf25a26cfa16e2c9e47368052246ab3106861
[yangtools.git] / yang / yang-data-impl / src / test / java / org / opendaylight / yangtools / yang / data / impl / schema / nodes / AbstractImmutableNormalizedValueAttrNodeTest.java
1 /**
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  */
4 package org.opendaylight.yangtools.yang.data.impl.schema.nodes;
5
6 import static org.junit.Assert.*;
7
8 import org.junit.Test;
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;
12
13 public class AbstractImmutableNormalizedValueAttrNodeTest {
14
15     private static QName ROOT_QNAME = QName.create("urn:test", "2014-03-13",
16             "root");
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,
20             "my-other-leaf");
21
22     @Test
23     public void equalsByteTest() {
24
25         byte[] valueNull = null;
26         byte[] equalValueNull = null;
27
28         LeafNode<byte[]> leafNodeNull = ImmutableNodes.leafNode(LEAF_QNAME,
29                 valueNull);
30         LeafNode<byte[]> equalLeafNodeNull = ImmutableNodes.leafNode(
31                 SAME_LEAF_QNAME, equalValueNull);
32
33         assertTrue(leafNodeNull.equals(leafNodeNull));
34         assertTrue(leafNodeNull.equals(equalLeafNodeNull));
35         assertTrue(equalLeafNodeNull.equals(leafNodeNull));
36
37         byte[] value = "test".getBytes();
38         byte[] equalValue = "test".getBytes();
39
40         LeafNode<byte[]> leafNode = ImmutableNodes.leafNode(LEAF_QNAME, value);
41         LeafNode<byte[]> equalLeafNode = ImmutableNodes.leafNode(
42                 SAME_LEAF_QNAME, equalValue);
43
44         assertTrue(leafNode.equals(leafNode));
45         assertTrue(leafNode.equals(equalLeafNode));
46         assertTrue(equalLeafNode.equals(leafNode));
47
48         Byte[] value2 = new Byte[] { new Byte("1"), new Byte("2") };
49         Byte[] equalValue2 = new Byte[] { new Byte("1"), new Byte("2") };
50
51         LeafNode<Byte[]> leafNode2 = ImmutableNodes
52                 .leafNode(LEAF_QNAME, value2);
53         LeafNode<Byte[]> equalLeafNode2 = ImmutableNodes.leafNode(
54                 SAME_LEAF_QNAME, equalValue2);
55
56         assertTrue(leafNode2.equals(leafNode2));
57         assertTrue(leafNode2.equals(equalLeafNode2));
58         assertTrue(equalLeafNode2.equals(leafNode2));
59
60         byte[][] value3 = new byte[][] { "test".getBytes(), "test2".getBytes() };
61         byte[][] equalValue3 = new byte[][] { "test".getBytes(),
62                 "test2".getBytes() };
63
64         LeafNode<byte[][]> leafNode3 = ImmutableNodes.leafNode(LEAF_QNAME,
65                 value3);
66         LeafNode<byte[][]> equalLeafNode3 = ImmutableNodes.leafNode(
67                 SAME_LEAF_QNAME, equalValue3);
68
69         assertTrue(leafNode3.equals(leafNode3));
70         assertTrue(leafNode3.equals(equalLeafNode3));
71         assertTrue(equalLeafNode3.equals(leafNode3));
72
73         Byte[][] value4 = new Byte[][] {
74                 new Byte[] { new Byte("1"), new Byte("2") },
75                 new Byte[] { new Byte("3"), new Byte("4") } };
76         Byte[][] equalValue4 = new Byte[][] {
77                 new Byte[] { new Byte("1"), new Byte("2") },
78                 new Byte[] { new Byte("3"), new Byte("4") } };
79
80         LeafNode<Byte[][]> leafNode4 = ImmutableNodes.leafNode(LEAF_QNAME,
81                 value4);
82         LeafNode<Byte[][]> equalLeafNode4 = ImmutableNodes.leafNode(
83                 SAME_LEAF_QNAME, equalValue4);
84
85         assertTrue(leafNode4.equals(leafNode4));
86         assertTrue(leafNode4.equals(equalLeafNode4));
87         assertTrue(equalLeafNode4.equals(leafNode4));
88
89         Byte value6 = new Byte("1");
90         Byte equalValue6 = new Byte("1");
91
92         LeafNode<Byte> leafNode6 = ImmutableNodes.leafNode(LEAF_QNAME, value6);
93         LeafNode<Byte> equalLeafNode6 = ImmutableNodes.leafNode(
94                 SAME_LEAF_QNAME, equalValue6);
95
96         assertTrue(leafNode6.equals(leafNode6));
97         assertTrue(leafNode6.equals(equalLeafNode6));
98         assertTrue(equalLeafNode6.equals(leafNode6));
99
100         String value5 = new String("test");
101         String equalValue5 = new String("test");
102
103         LeafNode<String> leafNode5 = ImmutableNodes
104                 .leafNode(LEAF_QNAME, value5);
105         LeafNode<String> equalLeafNode5 = ImmutableNodes.leafNode(
106                 SAME_LEAF_QNAME, equalValue5);
107
108         assertTrue(leafNode5.equals(leafNode5));
109         assertTrue(leafNode5.equals(equalLeafNode5));
110         assertTrue(equalLeafNode5.equals(leafNode5));
111
112     }
113
114     @Test
115     public void notEqualByteTest() {
116
117         byte[] value = "test".getBytes();
118         byte[] equalValue = "test".getBytes();
119
120         LeafNode<byte[]> leafNode = ImmutableNodes.leafNode(LEAF_QNAME, value);
121         LeafNode<byte[]> otherLeafNode = ImmutableNodes.leafNode(
122                 OTHER_LEAF_QNAME, equalValue);
123
124         assertFalse(leafNode.equals(null));
125         assertFalse(leafNode.equals(new Object()));
126         assertFalse(leafNode.equals(otherLeafNode));
127         assertFalse(otherLeafNode.equals(leafNode));
128
129         byte[] value1 = "test".getBytes();
130         byte[] otherValue1 = "test1".getBytes();
131
132         LeafNode<byte[]> leafNode1 = ImmutableNodes
133                 .leafNode(LEAF_QNAME, value1);
134         LeafNode<byte[]> otherLeafNode1 = ImmutableNodes.leafNode(
135                 SAME_LEAF_QNAME, otherValue1);
136
137         assertFalse(leafNode1.equals(otherLeafNode1));
138         assertFalse(otherLeafNode1.equals(leafNode1));
139
140         Byte[] value2 = new Byte[] { new Byte("1"), new Byte("1") };
141         Byte[] otherValue2 = new Byte[] { new Byte("1"), new Byte("2") };
142
143         LeafNode<Byte[]> leafNode2 = ImmutableNodes
144                 .leafNode(LEAF_QNAME, value2);
145         LeafNode<Byte[]> otherLeafNode2 = ImmutableNodes.leafNode(
146                 SAME_LEAF_QNAME, otherValue2);
147
148         assertFalse(leafNode2.equals(otherLeafNode2));
149         assertFalse(otherLeafNode2.equals(leafNode2));
150
151         byte[][] value3 = new byte[][] { "test".getBytes(), "test2".getBytes() };
152         byte[][] otherValue3 = new byte[][] { "test".getBytes(),
153                 "test3".getBytes() };
154
155         LeafNode<byte[][]> leafNode3 = ImmutableNodes.leafNode(LEAF_QNAME,
156                 value3);
157         LeafNode<byte[][]> otherLeafNode3 = ImmutableNodes.leafNode(
158                 SAME_LEAF_QNAME, otherValue3);
159
160         assertFalse(leafNode3.equals(otherLeafNode3));
161         assertFalse(otherLeafNode3.equals(leafNode3));
162
163         Byte[][] value4 = new Byte[][] {
164                 new Byte[] { new Byte("1"), new Byte("2") },
165                 new Byte[] { new Byte("3"), new Byte("4") } };
166         Byte[][] otherValue4 = new Byte[][] {
167                 new Byte[] { new Byte("1"), new Byte("2") },
168                 new Byte[] { new Byte("3"), new Byte("5") } };
169
170         LeafNode<Byte[][]> leafNode4 = ImmutableNodes.leafNode(LEAF_QNAME,
171                 value4);
172         LeafNode<Byte[][]> otherLeafNode4 = ImmutableNodes.leafNode(
173                 SAME_LEAF_QNAME, otherValue4);
174
175         assertFalse(leafNode4.equals(otherLeafNode4));
176         assertFalse(otherLeafNode4.equals(leafNode4));
177
178         Byte value6 = new Byte("1");
179         Byte otherValue6 = new Byte("2");
180
181         LeafNode<Byte> leafNode6 = ImmutableNodes.leafNode(LEAF_QNAME, value6);
182         LeafNode<Byte> otherLeafNode6 = ImmutableNodes.leafNode(
183                 SAME_LEAF_QNAME, otherValue6);
184
185         assertFalse(leafNode6.equals(otherLeafNode6));
186         assertFalse(otherLeafNode6.equals(leafNode6));
187
188         String value5 = new String("test");
189         String otherValue5 = new String("test2");
190
191         LeafNode<String> leafNode5 = ImmutableNodes
192                 .leafNode(LEAF_QNAME, value5);
193         LeafNode<String> otherLeafNode5 = ImmutableNodes.leafNode(
194                 SAME_LEAF_QNAME, otherValue5);
195
196         assertFalse(leafNode5.equals(otherLeafNode5));
197         assertFalse(otherLeafNode5.equals(leafNode5));
198         assertFalse(leafNode5.equals(leafNode));
199         assertFalse(leafNode5.equals(leafNode1));
200         assertFalse(leafNode5.equals(leafNode2));
201         assertFalse(leafNode5.equals(leafNode3));
202         assertFalse(leafNode5.equals(leafNode4));
203         assertFalse(leafNode5.equals(leafNode6));
204         assertFalse(leafNode.equals(leafNode5));
205         assertFalse(leafNode1.equals(leafNode5));
206         assertFalse(leafNode2.equals(leafNode5));
207         assertFalse(leafNode3.equals(leafNode5));
208         assertFalse(leafNode4.equals(leafNode5));
209         assertFalse(leafNode6.equals(leafNode5));
210
211         byte[] valueNull = null;
212
213         LeafNode<byte[]> leafNodeNull = ImmutableNodes.leafNode(
214                 SAME_LEAF_QNAME, valueNull);
215         assertFalse(leafNodeNull.equals(leafNode));
216         assertFalse(leafNode.equals(leafNodeNull));
217
218         byte[] byteValue = new byte[] { new Byte("1").byteValue(),
219                 new Byte("1").byteValue() };
220
221         LeafNode<byte[]> byteLeafNode = ImmutableNodes.leafNode(
222                 SAME_LEAF_QNAME, byteValue);
223         assertFalse(byteLeafNode.equals(leafNode2));
224         assertFalse(leafNode2.equals(byteLeafNode));
225
226     }
227
228     @Test
229     public void equalsOtherTypesTest() {
230
231         char[] valueChar = "test".toCharArray();
232         char[] equalValueChar = "test".toCharArray();
233
234         LeafNode<char[]> leafNodeChar = ImmutableNodes.leafNode(LEAF_QNAME,
235                 valueChar);
236         LeafNode<char[]> equalLeafNodeChar = ImmutableNodes.leafNode(
237                 SAME_LEAF_QNAME, equalValueChar);
238
239         assertTrue(leafNodeChar.equals(leafNodeChar));
240         assertTrue(leafNodeChar.equals(equalLeafNodeChar));
241         assertTrue(equalLeafNodeChar.equals(leafNodeChar));
242
243         boolean[] value = new boolean[] { true, false };
244         boolean[] equalValue = new boolean[] { true, false };
245
246         LeafNode<boolean[]> leafNode = ImmutableNodes.leafNode(LEAF_QNAME,
247                 value);
248         LeafNode<boolean[]> equalLeafNode = ImmutableNodes.leafNode(
249                 SAME_LEAF_QNAME, equalValue);
250
251         assertTrue(leafNode.equals(leafNode));
252         assertTrue(leafNode.equals(equalLeafNode));
253         assertTrue(equalLeafNode.equals(leafNode));
254
255         int[] value2 = new int[] { 1, 2 };
256         int[] equalValue2 = new int[] { 1, 2 };
257
258         LeafNode<int[]> leafNode2 = ImmutableNodes.leafNode(LEAF_QNAME, value2);
259         LeafNode<int[]> equalLeafNode2 = ImmutableNodes.leafNode(
260                 SAME_LEAF_QNAME, equalValue2);
261
262         assertTrue(leafNode2.equals(leafNode2));
263         assertTrue(leafNode2.equals(equalLeafNode2));
264         assertTrue(equalLeafNode2.equals(leafNode2));
265
266         short[] value3 = new short[] { 1, 2 };
267         short[] equalValue3 = new short[] { 1, 2 };
268
269         LeafNode<short[]> leafNode3 = ImmutableNodes.leafNode(LEAF_QNAME,
270                 value3);
271         LeafNode<short[]> equalLeafNode3 = ImmutableNodes.leafNode(
272                 SAME_LEAF_QNAME, equalValue3);
273
274         assertTrue(leafNode3.equals(leafNode3));
275         assertTrue(leafNode3.equals(equalLeafNode3));
276         assertTrue(equalLeafNode3.equals(leafNode3));
277
278         long[] value4 = new long[] { 1, 2 };
279         long[] equalValue4 = new long[] { 1, 2 };
280
281         LeafNode<long[]> leafNode4 = ImmutableNodes
282                 .leafNode(LEAF_QNAME, value4);
283         LeafNode<long[]> equalLeafNode4 = ImmutableNodes.leafNode(
284                 SAME_LEAF_QNAME, equalValue4);
285
286         assertTrue(leafNode4.equals(leafNode4));
287         assertTrue(leafNode4.equals(equalLeafNode4));
288         assertTrue(equalLeafNode4.equals(leafNode4));
289
290         double[] value6 = new double[] { 1, 2 };
291         double[] equalValue6 = new double[] { 1, 2 };
292
293         LeafNode<double[]> leafNode6 = ImmutableNodes.leafNode(LEAF_QNAME,
294                 value6);
295         LeafNode<double[]> equalLeafNode6 = ImmutableNodes.leafNode(
296                 SAME_LEAF_QNAME, equalValue6);
297
298         assertTrue(leafNode6.equals(leafNode6));
299         assertTrue(leafNode6.equals(equalLeafNode6));
300         assertTrue(equalLeafNode6.equals(leafNode6));
301
302         float[] value5 = new float[] { 1, 2 };
303         float[] equalValue5 = new float[] { 1, 2 };
304
305         LeafNode<float[]> leafNode5 = ImmutableNodes.leafNode(LEAF_QNAME,
306                 value5);
307         LeafNode<float[]> equalLeafNode5 = ImmutableNodes.leafNode(
308                 SAME_LEAF_QNAME, equalValue5);
309
310         assertTrue(leafNode5.equals(leafNode5));
311         assertTrue(leafNode5.equals(equalLeafNode5));
312         assertTrue(equalLeafNode5.equals(leafNode5));
313
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));
320
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));
327     }
328
329 }