1 package org.opendaylight.controller.cluster.datastore.util;
3 import org.junit.Assert;
5 import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages;
6 import org.opendaylight.yangtools.yang.common.QName;
7 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
9 import java.util.ArrayList;
10 import java.util.Arrays;
11 import java.util.HashSet;
12 import java.util.List;
14 public class InstanceIdentifierUtilsTest {
16 private static QName TEST_QNAME = QName.create("(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)test");
17 private static QName NODE_WITH_VALUE_QNAME = QName.create("(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)value");
18 private static QName NODE_WITH_PREDICATES_QNAME = QName.create("(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)pred");
19 private static QName NAME_QNAME = QName.create("(urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom:store:test?revision=2014-03-13)name");
22 public void testSerializationOfNodeIdentifier(){
23 YangInstanceIdentifier.PathArgument p1 =
24 new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME);
26 List<YangInstanceIdentifier.PathArgument> arguments = new ArrayList<>();
30 YangInstanceIdentifier expected = YangInstanceIdentifier.create(arguments);
32 NormalizedNodeMessages.InstanceIdentifier instanceIdentifier =
33 InstanceIdentifierUtils.toSerializable(expected);
35 YangInstanceIdentifier actual =
36 InstanceIdentifierUtils.fromSerializable(instanceIdentifier);
39 Assert.assertEquals(expected.getLastPathArgument(),
40 actual.getLastPathArgument());
46 public void testSerializationOfNodeWithValue(){
55 private void withValue(Object value){
56 YangInstanceIdentifier.PathArgument p1 =
57 new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME);
59 YangInstanceIdentifier.PathArgument p2 =
60 new YangInstanceIdentifier.NodeWithValue(NODE_WITH_VALUE_QNAME, value);
63 List<YangInstanceIdentifier.PathArgument> arguments = new ArrayList<>();
68 YangInstanceIdentifier expected = YangInstanceIdentifier.create(arguments);
70 NormalizedNodeMessages.InstanceIdentifier instanceIdentifier =
71 InstanceIdentifierUtils.toSerializable(expected);
73 YangInstanceIdentifier actual =
74 InstanceIdentifierUtils.fromSerializable(instanceIdentifier);
77 Assert.assertEquals(expected.getLastPathArgument(),
78 actual.getLastPathArgument());
83 public void testSerializationOfNodeIdentifierWithPredicates(){
85 withPredicates((short) 1);
86 withPredicates((long) 2);
92 private void withPredicates(Object value){
93 YangInstanceIdentifier.PathArgument p1 =
94 new YangInstanceIdentifier.NodeIdentifier(TEST_QNAME);
96 YangInstanceIdentifier.PathArgument p2 =
97 new YangInstanceIdentifier.NodeIdentifierWithPredicates(NODE_WITH_PREDICATES_QNAME, NAME_QNAME, value);
100 List<YangInstanceIdentifier.PathArgument> arguments = new ArrayList<>();
105 YangInstanceIdentifier expected = YangInstanceIdentifier.create(arguments);
107 NormalizedNodeMessages.InstanceIdentifier instanceIdentifier =
108 InstanceIdentifierUtils.toSerializable(expected);
110 YangInstanceIdentifier actual =
111 InstanceIdentifierUtils.fromSerializable(instanceIdentifier);
114 Assert.assertEquals(expected.getLastPathArgument(),
115 actual.getLastPathArgument());
119 public void testAugmentationIdentifier(){
120 YangInstanceIdentifier.PathArgument p1 =
121 new YangInstanceIdentifier.AugmentationIdentifier(new HashSet(Arrays.asList(TEST_QNAME)));
123 List<YangInstanceIdentifier.PathArgument> arguments = new ArrayList<>();
127 YangInstanceIdentifier expected = YangInstanceIdentifier.create(arguments);
129 NormalizedNodeMessages.InstanceIdentifier instanceIdentifier =
130 InstanceIdentifierUtils.toSerializable(expected);
132 YangInstanceIdentifier actual =
133 InstanceIdentifierUtils.fromSerializable(instanceIdentifier);
136 Assert.assertEquals(expected.getLastPathArgument(),
137 actual.getLastPathArgument());