Fix infinite loop in augment resolution
[netconf.git] / restconf / restconf-nb-rfc8040 / src / test / java / org / opendaylight / restconf / nb / rfc8040 / utils / parser / YangInstanceIdentifierDeserializerTest.java
index 9d97189295a0fbe94aa18ec6dd33397c3a3cb610..9a44c4c91433775085829f3d64c3bd911085685d 100644 (file)
@@ -641,20 +641,39 @@ public class YangInstanceIdentifierDeserializerTest {
     public void deserializePartInOtherModuleTest() {
         final List<PathArgument> result = YangInstanceIdentifierDeserializer.create(SCHEMA_CONTEXT,
             "deserializer-test-included:augmented-list=100/deserializer-test:augmented-leaf");
-
         assertEquals(4, result.size());
 
+        // list
         final QName list = QName.create("deserializer:test:included", "2016-06-06", "augmented-list");
-        final QName child = QName.create("deserializer:test", "2016-06-06", "augmented-leaf");
+        assertEquals(NodeIdentifier.create(list), result.get(0));
+        assertEquals(NodeIdentifierWithPredicates.of(list, QName.create(list, "list-key"), Uint16.valueOf(100)),
+            result.get(1));
+
+        // augmented leaf
+        final QName augLeaf = QName.create("deserializer:test", "2016-06-06", "augmented-leaf");
+        final QName augList = QName.create("deserializer:test", "2016-06-06", "augmenting-list");
+        assertEquals(new AugmentationIdentifier(Set.of(augLeaf, augList)), result.get(2));
+        assertEquals(NodeIdentifier.create(augLeaf), result.get(3));
+    }
+
+    @Test
+    public void deserializeListInOtherModuleTest() {
+        final List<PathArgument> result = YangInstanceIdentifierDeserializer.create(SCHEMA_CONTEXT,
+            "deserializer-test-included:augmented-list=100/deserializer-test:augmenting-list=0");
+        assertEquals(5, result.size());
 
         // list
+        final QName list = QName.create("deserializer:test:included", "2016-06-06", "augmented-list");
         assertEquals(NodeIdentifier.create(list), result.get(0));
         assertEquals(NodeIdentifierWithPredicates.of(list, QName.create(list, "list-key"), Uint16.valueOf(100)),
             result.get(1));
 
-        // augmented leaf
-        assertEquals(new AugmentationIdentifier(Set.of(child)), result.get(2));
-        assertEquals(NodeIdentifier.create(child), result.get(3));
+        // augmented list
+        final QName augLeaf = QName.create("deserializer:test", "2016-06-06", "augmented-leaf");
+        final QName augList = QName.create("deserializer:test", "2016-06-06", "augmenting-list");
+        assertEquals(new AugmentationIdentifier(Set.of(augLeaf, augList)), result.get(2));
+        assertEquals(NodeIdentifier.create(augList), result.get(3));
+        assertEquals(NodeIdentifierWithPredicates.of(augList, QName.create(augList, "id"), 0), result.get(4));
     }
 
     /**