Update ChoiceSchemaNode design
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / parser / util / SchemaContextUtilTest.java
index 926f7c54e8c3cc0f19bf70a6f6c2c362d0961878..dcb9f2bdd30d9cd39e0c16dee13af6e810daa834 100644 (file)
@@ -10,16 +10,21 @@ package org.opendaylight.yangtools.yang.parser.util;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doReturn;
+
 import java.io.IOException;
 import java.net.URI;
 import java.net.URISyntaxException;
-import java.text.ParseException;
 import java.util.Collections;
+import java.util.Optional;
 import org.junit.Test;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -34,9 +39,9 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.parser.api.YangSyntaxErrorException;
-import org.opendaylight.yangtools.yang.model.util.Int32;
 import org.opendaylight.yangtools.yang.model.util.RevisionAwareXPathImpl;
 import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
+import org.opendaylight.yangtools.yang.model.util.type.BaseTypes;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.opendaylight.yangtools.yang.stmt.TestUtils;
 
@@ -49,18 +54,21 @@ public class SchemaContextUtilTest {
     @Test
     public void testFindDummyData() {
         MockitoAnnotations.initMocks(this);
+        doReturn(Optional.empty()).when(mockSchemaContext).findModule(any(QNameModule.class));
+        doReturn(URI.create("dummy")).when(mockModule).getNamespace();
+        doReturn(Optional.empty()).when(mockModule).getRevision();
 
-        QName qName = QName.create("TestQName");
-        SchemaPath schemaPath = SchemaPath.create(Collections.singletonList(qName), true);
+        final QName qName = QName.create("dummy", "TestQName");
+        final SchemaPath schemaPath = SchemaPath.create(Collections.singletonList(qName), true);
         assertEquals("Should be null. Module TestQName not found", null,
                 SchemaContextUtil.findDataSchemaNode(mockSchemaContext, schemaPath));
 
-        RevisionAwareXPath xPath = new RevisionAwareXPathImpl("/bookstore/book/title", true);
+        final RevisionAwareXPath xPath = new RevisionAwareXPathImpl("/bookstore/book/title", true);
         assertEquals("Should be null. Module bookstore not found", null,
                 SchemaContextUtil.findDataSchemaNode(mockSchemaContext, mockModule, xPath));
 
-        SchemaNode schemaNode = Int32.getInstance();
-        RevisionAwareXPath xPathRelative = new RevisionAwareXPathImpl("../prefix", false);
+        final SchemaNode schemaNode = BaseTypes.int32Type();
+        final RevisionAwareXPath xPathRelative = new RevisionAwareXPathImpl("../prefix", false);
         assertEquals("Should be null, Module prefix not found", null,
                 SchemaContextUtil.findDataSchemaNodeForRelativeXPath(mockSchemaContext, mockModule, schemaNode,
                         xPathRelative));
@@ -73,15 +81,15 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findNodeInSchemaContextTest() throws URISyntaxException, IOException, YangSyntaxErrorException,
-            ParseException, ReactorException {
+            ReactorException {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final Module myModule = context.findModule(new URI("uri:my-module"),Revision.of("2014-10-07")).get();
 
-        SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-leaf-in-container");
+        SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-container"));
 
         SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-leaf-in-container"));
@@ -91,8 +99,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        RpcDefinition rpc = getRpcByName(myModule,"my-rpc");
-        testNode = rpc.getInput().getDataChildByName("my-input-leaf");
+        RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
+        testNode = rpc.getInput().getDataChildByName(QName.create(myModule.getQNameModule(), "my-input-leaf"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
                 QName.create(myModule.getQNameModule(), "input"),
@@ -104,8 +112,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        rpc = getRpcByName(myModule,"my-rpc");
-        testNode = rpc.getOutput().getDataChildByName("my-output-leaf");
+        rpc = getRpcByName(myModule, "my-rpc");
+        testNode = rpc.getOutput().getDataChildByName(QName.create(myModule.getQNameModule(), "my-output-leaf"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
                 QName.create(myModule.getQNameModule(), "output"),
@@ -117,8 +125,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        NotificationDefinition notification = myModule.getNotifications().iterator().next();
-        testNode = notification.getDataChildByName("my-notification-leaf");
+        final NotificationDefinition notification = myModule.getNotifications().iterator().next();
+        testNode = notification.getDataChildByName(QName.create(myModule.getQNameModule(), "my-notification-leaf"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"),
                 QName.create(myModule.getQNameModule(), "my-notification-leaf"));
@@ -129,9 +137,10 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        GroupingDefinition grouping = getGroupingByName(myModule,"my-grouping");
-        testNode = ((ContainerSchemaNode) grouping.getDataChildByName("my-container-in-grouping"))
-                .getDataChildByName("my-leaf-in-grouping");
+        final GroupingDefinition grouping = getGroupingByName(myModule, "my-grouping");
+        testNode = ((ContainerSchemaNode) grouping.getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-container-in-grouping"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"),
                 QName.create(myModule.getQNameModule(), "my-container-in-grouping"),
@@ -143,8 +152,10 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((ChoiceSchemaNode) myModule.getDataChildByName("my-choice")).getCaseNodeByName("one").getDataChildByName(
-                "my-choice-leaf-one");
+        testNode = ((ChoiceSchemaNode) myModule
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice")))
+                .findCaseNodes("one").iterator().next()
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice-leaf-one"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
                 QName.create(myModule.getQNameModule(), "one"),
@@ -155,10 +166,11 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        ListSchemaNode listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-list");
+        ListSchemaNode listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-list"));
 
-        testNode = listNode.getDataChildByName("my-leaf-in-list");
+        testNode = listNode.getDataChildByName(QName.create(myModule.getQNameModule(), "my-leaf-in-list"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-list"),
@@ -169,10 +181,11 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-list");
+        listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-list"));
 
-        testNode = listNode.getDataChildByName("my-leaf-list-in-list");
+        testNode = listNode.getDataChildByName(QName.create(myModule.getQNameModule(), "my-leaf-list-in-list"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-list"),
@@ -187,15 +200,15 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findNodeInSchemaContextTest2() throws URISyntaxException, IOException, YangSyntaxErrorException,
-            ParseException, ReactorException {
+            ReactorException {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test") ;
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final Module myModule = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
 
-        SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-leaf-not-in-container");
+        SchemaNode testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-not-in-container"));
 
         SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-leaf-not-in-container"));
@@ -204,8 +217,8 @@ public class SchemaContextUtilTest {
         assertNull(testNode);
         assertNull(foundNode);
 
-        RpcDefinition rpc = getRpcByName(myModule,"my-rpc");
-        testNode = rpc.getInput().getDataChildByName("no-input-leaf");
+        final RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
+        testNode = rpc.getInput().getDataChildByName(QName.create(myModule.getQNameModule(), "no-input-leaf"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"),
                 QName.create(myModule.getQNameModule(), "input"),
@@ -216,8 +229,8 @@ public class SchemaContextUtilTest {
         assertNull(testNode);
         assertNull(foundNode);
 
-        NotificationDefinition notification = myModule.getNotifications().iterator().next();
-        testNode = notification.getDataChildByName("no-notification-leaf");
+        final NotificationDefinition notification = myModule.getNotifications().iterator().next();
+        testNode = notification.getDataChildByName(QName.create(myModule.getQNameModule(), "no-notification-leaf"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-notification"),
                 QName.create(myModule.getQNameModule(), "no-notification-leaf"));
@@ -227,9 +240,10 @@ public class SchemaContextUtilTest {
         assertNull(testNode);
         assertNull(foundNode);
 
-        GroupingDefinition grouping = getGroupingByName(myModule,"my-grouping");
-        testNode = ((ContainerSchemaNode) grouping.getDataChildByName("my-container-in-grouping"))
-                .getDataChildByName("no-leaf-in-grouping");
+        final GroupingDefinition grouping = getGroupingByName(myModule, "my-grouping");
+        testNode = ((ContainerSchemaNode) grouping.getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-container-in-grouping"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "no-leaf-in-grouping"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"),
                 QName.create(myModule.getQNameModule(), "my-container-in-grouping"),
@@ -240,8 +254,10 @@ public class SchemaContextUtilTest {
         assertNull(testNode);
         assertNull(foundNode);
 
-        testNode = ((ChoiceSchemaNode) myModule.getDataChildByName("my-choice")).getCaseNodeByName("one").getDataChildByName(
-                "no-choice-leaf");
+        testNode = ((ChoiceSchemaNode) myModule
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice")))
+                .findCaseNodes("one").iterator().next()
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "no-choice-leaf"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
                 QName.create(myModule.getQNameModule(), "one"),
@@ -251,10 +267,11 @@ public class SchemaContextUtilTest {
         assertNull(testNode);
         assertNull(foundNode);
 
-        ListSchemaNode listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-list");
+        ListSchemaNode listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-list"));
 
-        testNode = listNode.getDataChildByName("no-leaf-in-list");
+        testNode = listNode.getDataChildByName(QName.create(myModule.getQNameModule(), "no-leaf-in-list"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-list"),
@@ -264,10 +281,11 @@ public class SchemaContextUtilTest {
         assertNull(testNode);
         assertNull(foundNode);
 
-        listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-list");
+        listNode = (ListSchemaNode) ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-list"));
 
-        testNode = listNode.getDataChildByName("no-leaf-list-in-list");
+        testNode = listNode.getDataChildByName(QName.create(myModule.getQNameModule(), "no-leaf-list-in-list"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-list"),
@@ -281,14 +299,13 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findNodeInSchemaContextTest3() throws URISyntaxException, IOException, YangSyntaxErrorException,
-            ParseException, ReactorException {
+            ReactorException {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final Module myModule = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
 
-        SchemaNode testNode = myModule.getDataChildByName("my-container");
+        SchemaNode testNode = myModule.getDataChildByName(QName.create(myModule.getQNameModule(), "my-container"));
 
         SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"));
         SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -297,7 +314,7 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = getRpcByName(myModule,"my-rpc");
+        testNode = getRpcByName(myModule, "my-rpc");
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-rpc"));
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -315,7 +332,7 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = getGroupingByName(myModule,"my-grouping");
+        testNode = getGroupingByName(myModule, "my-grouping");
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-grouping"));
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -324,7 +341,7 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = myModule.getDataChildByName("my-choice");
+        testNode = myModule.getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"));
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -333,7 +350,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((ContainerSchemaNode) myModule.getDataChildByName("my-container")).getDataChildByName("my-list");
+        testNode = ((ContainerSchemaNode) myModule.getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(), "my-list"));
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
                 QName.create(myModule.getQNameModule(), "my-list"));
@@ -346,17 +364,17 @@ public class SchemaContextUtilTest {
     }
 
     @Test
-    public void findParentModuleTest() throws URISyntaxException, IOException, YangSyntaxErrorException, ParseException,
+    public void findParentModuleTest() throws URISyntaxException, IOException, YangSyntaxErrorException,
             ReactorException {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final Module myModule = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
 
-        DataSchemaNode node = myModule.getDataChildByName("my-container");
+        final DataSchemaNode node = myModule.getDataChildByName(QName.create(myModule.getQNameModule(),
+            "my-container"));
 
-        Module foundModule = SchemaContextUtil.findParentModule(context, node);
+        final Module foundModule = SchemaContextUtil.findParentModule(context, node);
 
         assertEquals(myModule, foundModule);
     }
@@ -364,7 +382,7 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findParentModuleIllegalArgumentTest() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
         SchemaContextUtil.findParentModule(mockContext, null);
 
     }
@@ -372,7 +390,7 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findParentModuleIllegalArgumentTest2() {
 
-        SchemaNode mockSchemaNode = Mockito.mock(SchemaNode.class);
+        final SchemaNode mockSchemaNode = Mockito.mock(SchemaNode.class);
         SchemaContextUtil.findParentModule(null, mockSchemaNode);
 
     }
@@ -380,8 +398,8 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalStateException.class)
     public void findParentModuleIllegalStateTest() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
-        SchemaNode mockSchemaNode = Mockito.mock(SchemaNode.class);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final SchemaNode mockSchemaNode = Mockito.mock(SchemaNode.class);
         Mockito.when(mockSchemaNode.getPath()).thenReturn(null);
         SchemaContextUtil.findParentModule(mockContext, mockSchemaNode);
 
@@ -390,7 +408,7 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findDataSchemaNodeIllegalArgumentTest() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
         SchemaContextUtil.findDataSchemaNode(mockContext, null);
 
     }
@@ -398,7 +416,7 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findDataSchemaNodeIllegalArgumentTest2() {
 
-        SchemaPath mockSchemaPath = Mockito.mock(SchemaPath.class);
+        final SchemaPath mockSchemaPath = Mockito.mock(SchemaPath.class);
         SchemaContextUtil.findDataSchemaNode(null, mockSchemaPath);
 
     }
@@ -406,43 +424,41 @@ public class SchemaContextUtilTest {
     @Test
     public void findDataSchemaNodeTest() throws URISyntaxException, IOException, YangSyntaxErrorException,
             ReactorException {
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final Module module = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
+        final Module importedModule = context.findModule(new URI("uri:imported-module"),
+            Revision.of("2014-10-07")).get();
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaNode testNode = ((ContainerSchemaNode) importedModule.getDataChildByName(QName.create(
+                importedModule.getQNameModule(), "my-imported-container"))).getDataChildByName(QName.create(
+                importedModule.getQNameModule(), "my-imported-leaf"));
 
-        Module module = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
-        Module importedModule = context.findModuleByNamespaceAndRevision(new URI("uri:imported-module"),
-                QName.parseRevision("2014-10-07"));
-
-        SchemaNode testNode = ((ContainerSchemaNode) importedModule.getDataChildByName("my-imported-container"))
-                .getDataChildByName("my-imported-leaf");
-
-        RevisionAwareXPath xpath = new RevisionAwareXPathImpl("imp:my-imported-container/imp:my-imported-leaf", true);
+        final RevisionAwareXPath xpath = new RevisionAwareXPathImpl("imp:my-imported-container/imp:my-imported-leaf",
+                true);
 
-        SchemaNode foundNode = SchemaContextUtil.findDataSchemaNode(context, module, xpath);
+        final SchemaNode foundNode = SchemaContextUtil.findDataSchemaNode(context, module, xpath);
 
         assertNotNull(foundNode);
         assertNotNull(testNode);
         assertEquals(testNode, foundNode);
-
     }
 
     @Test
-    public void findDataSchemaNodeTest2() throws URISyntaxException, IOException, YangSyntaxErrorException, ReactorException {
+    public void findDataSchemaNodeTest2() throws URISyntaxException, IOException, YangSyntaxErrorException,
+            ReactorException {
         // findDataSchemaNode(final SchemaContext context, final Module module,
         // final RevisionAwareXPath nonCondXPath) {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final Module module = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
 
-        Module module = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final GroupingDefinition grouping = getGroupingByName(module, "my-grouping");
+        final SchemaNode testNode = grouping.getDataChildByName(QName.create(module.getQNameModule(),
+                "my-leaf-in-gouping2"));
 
-        GroupingDefinition grouping = getGroupingByName(module,"my-grouping");
-        SchemaNode testNode = grouping.getDataChildByName("my-leaf-in-gouping2");
+        final RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
 
-        RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
-
-        SchemaNode foundNode = SchemaContextUtil.findDataSchemaNode(context, module, xpath);
+        final SchemaNode foundNode = SchemaContextUtil.findDataSchemaNode(context, module, xpath);
 
         assertNotNull(foundNode);
         assertNotNull(testNode);
@@ -453,8 +469,8 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findDataSchemaNodeFromXPathIllegalArgumentTest() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
-        Module module = Mockito.mock(Module.class);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final Module module = Mockito.mock(Module.class);
 
         SchemaContextUtil.findDataSchemaNode(mockContext, module, null);
 
@@ -463,8 +479,8 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findDataSchemaNodeFromXPathIllegalArgumentTest2() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
-        RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
 
         SchemaContextUtil.findDataSchemaNode(mockContext, null, xpath);
 
@@ -473,8 +489,8 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findDataSchemaNodeFromXPathIllegalArgumentTest3() {
 
-        Module module = Mockito.mock(Module.class);
-        RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
+        final Module module = Mockito.mock(Module.class);
+        final RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", true);
 
         SchemaContextUtil.findDataSchemaNode(null, module, xpath);
 
@@ -483,10 +499,10 @@ public class SchemaContextUtilTest {
     @Test(expected = IllegalArgumentException.class)
     public void findDataSchemaNodeFromXPathIllegalArgumentTest4() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
-        Module module = Mockito.mock(Module.class);
-        RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping[@con='NULL']/my:my-leaf-in-gouping2",
-                true);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final Module module = Mockito.mock(Module.class);
+        final RevisionAwareXPath xpath = new RevisionAwareXPathImpl(
+                "my:my-grouping[@con='NULL']/my:my-leaf-in-gouping2", true);
 
         SchemaContextUtil.findDataSchemaNode(mockContext, module, xpath);
 
@@ -495,9 +511,9 @@ public class SchemaContextUtilTest {
     @Test
     public void findDataSchemaNodeFromXPathNullTest() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
-        Module module = Mockito.mock(Module.class);
-        RevisionAwareXPath xpath = Mockito.mock(RevisionAwareXPath.class);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final Module module = Mockito.mock(Module.class);
+        final RevisionAwareXPath xpath = Mockito.mock(RevisionAwareXPath.class);
 
         Mockito.when(xpath.toString()).thenReturn(null);
         assertNull(SchemaContextUtil.findDataSchemaNode(mockContext, module, xpath));
@@ -507,9 +523,9 @@ public class SchemaContextUtilTest {
     @Test
     public void findDataSchemaNodeFromXPathNullTest2() {
 
-        SchemaContext mockContext = Mockito.mock(SchemaContext.class);
-        Module module = Mockito.mock(Module.class);
-        RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", false);
+        final SchemaContext mockContext = Mockito.mock(SchemaContext.class);
+        final Module module = Mockito.mock(Module.class);
+        final RevisionAwareXPath xpath = new RevisionAwareXPathImpl("my:my-grouping/my:my-leaf-in-gouping2", false);
 
         assertNull(SchemaContextUtil.findDataSchemaNode(mockContext, module, xpath));
 
@@ -517,15 +533,14 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findNodeInSchemaContextGroupingsTest() throws URISyntaxException, IOException,
-            YangSyntaxErrorException, ParseException, ReactorException {
-
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+            YangSyntaxErrorException, ReactorException {
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final Module myModule = context.findModule(URI.create("uri:my-module"), Revision.of("2014-10-07")).get();
 
         // find grouping in container
-        DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName("my-container");
+        DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"));
         SchemaNode testNode = getGroupingByName(dataContainer, "my-grouping-in-container");
 
         SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
@@ -536,7 +551,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-container");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-container"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-container"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -546,8 +562,9 @@ public class SchemaContextUtilTest {
         assertEquals(testNode, foundNode);
 
         // find grouping in list
-        dataContainer = (DataNodeContainer) ((DataNodeContainer) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-list");
+        dataContainer = (DataNodeContainer) ((DataNodeContainer) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-list"));
         testNode = getGroupingByName(dataContainer, "my-grouping-in-list");
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
@@ -559,7 +576,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-list");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-list"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-list"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -580,7 +598,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-grouping");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-grouping"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-grouping"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -590,8 +609,8 @@ public class SchemaContextUtilTest {
         assertEquals(testNode, foundNode);
 
         // find grouping in rpc
-        RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
-        for (GroupingDefinition grouping : rpc.getGroupings()) {
+        final RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
+        for (final GroupingDefinition grouping : rpc.getGroupings()) {
             if (grouping.getQName().getLocalName().equals("my-grouping-in-rpc")) {
                 testNode = grouping;
             }
@@ -605,7 +624,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-rpc");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-rpc"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-rpc"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -627,7 +647,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-output");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-output"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-output"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -649,7 +670,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-input");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-input"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-input"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -670,7 +692,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-notification");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-notification"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-notification"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -680,8 +703,10 @@ public class SchemaContextUtilTest {
         assertEquals(testNode, foundNode);
 
         // find grouping in case
-        dataContainer = (DataNodeContainer) ((ChoiceSchemaNode) myModule.getDataChildByName("my-choice")).getCaseNodeByName(
-                "one").getDataChildByName("my-container-in-case");
+        dataContainer = (DataNodeContainer) ((ChoiceSchemaNode) myModule.getDataChildByName(
+            QName.create(myModule.getQNameModule(), "my-choice")))
+                .findCaseNodes("one").iterator().next()
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "my-container-in-case"));
         testNode = getGroupingByName(dataContainer, "my-grouping-in-case");
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
@@ -694,7 +719,8 @@ public class SchemaContextUtilTest {
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
 
-        testNode = ((GroupingDefinition) testNode).getDataChildByName("my-leaf-in-grouping-in-case");
+        testNode = ((GroupingDefinition) testNode).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-leaf-in-grouping-in-case"));
         path = path.createChild(QName.create(myModule.getQNameModule(), "my-leaf-in-grouping-in-case"));
 
         foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
@@ -707,15 +733,15 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findNodeInSchemaContextGroupingsTest2() throws URISyntaxException, IOException,
-            YangSyntaxErrorException, ParseException, ReactorException {
+            YangSyntaxErrorException, ReactorException {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final Module myModule = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
 
         // find grouping in container
-        DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName("my-container");
+        DataNodeContainer dataContainer = (DataNodeContainer) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"));
         SchemaNode testNode = getGroupingByName(dataContainer, "my-grouping-in-container2");
 
         SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
@@ -726,8 +752,9 @@ public class SchemaContextUtilTest {
         assertNull(foundNode);
 
         // find grouping in list
-        dataContainer = (DataNodeContainer) ((DataNodeContainer) myModule.getDataChildByName("my-container"))
-                .getDataChildByName("my-list");
+        dataContainer = (DataNodeContainer) ((DataNodeContainer) myModule.getDataChildByName(QName.create(
+                myModule.getQNameModule(), "my-container"))).getDataChildByName(QName.create(myModule.getQNameModule(),
+                "my-list"));
         testNode = getGroupingByName(dataContainer, "my-grouping-in-list2");
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-container"),
@@ -750,8 +777,8 @@ public class SchemaContextUtilTest {
         assertNull(foundNode);
 
         // find grouping in rpc
-        RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
-        for (GroupingDefinition grouping : rpc.getGroupings()) {
+        final RpcDefinition rpc = getRpcByName(myModule, "my-rpc");
+        for (final GroupingDefinition grouping : rpc.getGroupings()) {
             if (grouping.getQName().getLocalName().equals("my-grouping-in-rpc2")) {
                 testNode = grouping;
             }
@@ -800,8 +827,10 @@ public class SchemaContextUtilTest {
         assertNull(foundNode);
 
         // find grouping in case
-        dataContainer = (DataNodeContainer) ((ChoiceSchemaNode) myModule.getDataChildByName("my-choice")).getCaseNodeByName(
-                "one").getDataChildByName("my-container-in-case");
+        dataContainer = (DataNodeContainer) ((ChoiceSchemaNode) myModule.getDataChildByName(
+            QName.create(myModule.getQNameModule(), "my-choice")))
+                .findCaseNodes("one").iterator().next()
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "my-container-in-case"));
         testNode = getGroupingByName(dataContainer, "my-grouping-in-case2");
 
         path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-choice"),
@@ -816,7 +845,7 @@ public class SchemaContextUtilTest {
     }
 
     private static GroupingDefinition getGroupingByName(final DataNodeContainer dataNodeContainer, final String name) {
-        for (GroupingDefinition grouping : dataNodeContainer.getGroupings()) {
+        for (final GroupingDefinition grouping : dataNodeContainer.getGroupings()) {
             if (grouping.getQName().getLocalName().equals(name)) {
                 return grouping;
             }
@@ -825,7 +854,7 @@ public class SchemaContextUtilTest {
     }
 
     private static RpcDefinition getRpcByName(final Module module, final String name) {
-        for (RpcDefinition rpc : module.getRpcs()) {
+        for (final RpcDefinition rpc : module.getRpcs()) {
             if (rpc.getQName().getLocalName().equals(name)) {
                 return rpc;
             }
@@ -834,7 +863,7 @@ public class SchemaContextUtilTest {
     }
 
     private static NotificationDefinition getNotificationByName(final Module module, final String name) {
-        for (NotificationDefinition notification : module.getNotifications()) {
+        for (final NotificationDefinition notification : module.getNotifications()) {
             if (notification.getQName().getLocalName().equals(name)) {
                 return notification;
             }
@@ -844,27 +873,23 @@ public class SchemaContextUtilTest {
 
     @Test
     public void findNodeInSchemaContextTheSameNameOfSiblingsTest() throws URISyntaxException, IOException,
-            YangSyntaxErrorException, ParseException, ReactorException {
+            YangSyntaxErrorException, ReactorException {
 
-        SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
+        final SchemaContext context = TestUtils.parseYangSources("/schema-context-util-test");
 
-        Module myModule = context.findModuleByNamespaceAndRevision(new URI("uri:my-module"),
-                QName.parseRevision("2014-10-07"));
+        final Module myModule = context.findModule(new URI("uri:my-module"), Revision.of("2014-10-07")).get();
+        final ChoiceSchemaNode choice = (ChoiceSchemaNode) getRpcByName(myModule, "my-name").getInput()
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "my-choice"));
+        final SchemaNode testNode = choice.findCaseNodes("case-two").iterator().next()
+                .getDataChildByName(QName.create(myModule.getQNameModule(), "two"));
 
-        ChoiceSchemaNode choice = (ChoiceSchemaNode)getRpcByName(myModule,"my-name").getInput().getDataChildByName("my-choice");
-        SchemaNode testNode = choice.getCaseNodeByName("case-two").getDataChildByName("two");
-
-        SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-name"),
-                QName.create(myModule.getQNameModule(), "input"),
-                QName.create(myModule.getQNameModule(), "my-choice"),
-                QName.create(myModule.getQNameModule(), "case-two"),
-                QName.create(myModule.getQNameModule(), "two"));
-        SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
+        final SchemaPath path = SchemaPath.create(true, QName.create(myModule.getQNameModule(), "my-name"),
+                QName.create(myModule.getQNameModule(), "input"), QName.create(myModule.getQNameModule(), "my-choice"),
+                QName.create(myModule.getQNameModule(), "case-two"), QName.create(myModule.getQNameModule(), "two"));
+        final SchemaNode foundNode = SchemaContextUtil.findNodeInSchemaContext(context, path.getPathFromRoot());
 
         assertNotNull(testNode);
         assertNotNull(foundNode);
         assertEquals(testNode, foundNode);
-
     }
-
 }
\ No newline at end of file