Reimplement SchemaContextUtil.getBaseTypeForLeafRef()
[yangtools.git] / yang / yang-model-util / src / test / java / org / opendaylight / yangtools / yang / model / util / YT588Test.java
index c75b93ad59bb950ef98a3a77242c8b3ad1ddf588..429ac32d88c18a2176b150a6f38d74d7865ac7b3 100644 (file)
@@ -12,10 +12,11 @@ import static org.hamcrest.Matchers.isA;
 
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Int16TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition;
@@ -26,8 +27,8 @@ public class YT588Test {
     private static final String REV = "2016-03-01";
 
     @Test
-    public void test() throws Exception {
-        SchemaContext context = YangParserTestUtils.parseYangResource("/yt588.yang");
+    public void test() {
+        EffectiveModelContext context = YangParserTestUtils.parseYangResource("/yt588.yang");
 
         QName root = QName.create(NS, REV, "root");
         QName leafRef2 = QName.create(NS, REV, "leaf-ref-2");
@@ -45,12 +46,12 @@ public class YT588Test {
         assertThat(leafRefNode.getType(), isA(LeafrefTypeDefinition.class));
         assertThat(leafRefNode2.getType(), isA(LeafrefTypeDefinition.class));
 
-        TypeDefinition<?> baseTypeForLeafRef = SchemaContextUtil.getBaseTypeForLeafRef(
-                (LeafrefTypeDefinition) leafRefNode.getType(), context, leafRefNode);
-        TypeDefinition<?> baseTypeForLeafRef2 = SchemaContextUtil.getBaseTypeForLeafRef(
-                (LeafrefTypeDefinition) leafRefNode2.getType(), context, leafRefNode2);
+        EffectiveStatement<?, ?> found = SchemaInferenceStack.ofDataTreePath(context, root, conGrp, leafRef)
+                .resolvePathExpression(((LeafrefTypeDefinition) leafRefNode.getType()).getPathStatement());
+        assertThat(((TypedDataSchemaNode)found).getType(), isA(BinaryTypeDefinition.class));
 
-        assertThat(baseTypeForLeafRef, isA(BinaryTypeDefinition.class));
-        assertThat(baseTypeForLeafRef2, isA(Int16TypeDefinition.class));
+        found = SchemaInferenceStack.ofDataTreePath(context, root, leafRef2)
+            .resolvePathExpression(((LeafrefTypeDefinition) leafRefNode2.getType()).getPathStatement());
+        assertThat(((TypedDataSchemaNode)found).getType(), isA(Int16TypeDefinition.class));
     }
 }