Bug 7847: Implement YANG 1.1 XPath functions in YangFunctionContext
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / stmt / EffectiveModulesAndSubmodulesTest.java
index b18c07cded4cc2ef8d925029f927df805c481964..bd2bcc26fe0225d85c5d5f44cdaa60ef0107ad79 100644 (file)
@@ -11,6 +11,8 @@ package org.opendaylight.yangtools.yang.stmt;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
+import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
+
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Collection;
@@ -23,42 +25,42 @@ import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
+import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource;
 import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangStatementSourceImpl;
 import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.EffectiveSchemaContext;
 
 public class EffectiveModulesAndSubmodulesTest {
 
-    private static final YangStatementSourceImpl ROOT_MODULE = new YangStatementSourceImpl(
-            "/stmt-test/submodules/root-module.yang",false);
-    private static final YangStatementSourceImpl IMPORTED_MODULE = new YangStatementSourceImpl(
-            "/stmt-test/submodules/imported-module.yang",false);
-    private static final YangStatementSourceImpl SUBMODULE_1 = new YangStatementSourceImpl(
-            "/stmt-test/submodules/submodule-1.yang",false);
-    private static final YangStatementSourceImpl SUBMODULE_2 = new YangStatementSourceImpl(
-            "/stmt-test/submodules/submodule-2.yang",false);
-    private static final YangStatementSourceImpl SUBMODULE_TO_SUBMODULE_1 = new YangStatementSourceImpl(
-            "/stmt-test/submodules/submodule-to-submodule-1.yang",false);
+    private static final StatementStreamSource ROOT_MODULE = sourceForResource(
+            "/stmt-test/submodules/root-module.yang");
+    private static final StatementStreamSource IMPORTED_MODULE = sourceForResource(
+            "/stmt-test/submodules/imported-module.yang");
+    private static final StatementStreamSource SUBMODULE_1 = sourceForResource(
+            "/stmt-test/submodules/submodule-1.yang");
+    private static final StatementStreamSource SUBMODULE_2 = sourceForResource(
+            "/stmt-test/submodules/submodule-2.yang");
+    private static final StatementStreamSource SUBMODULE_TO_SUBMODULE_1 = sourceForResource(
+            "/stmt-test/submodules/submodule-to-submodule-1.yang");
 
     @Test
     public void modulesAndSubmodulesSimpleReferencesTest()
             throws SourceException, ReactorException, URISyntaxException {
-        CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR
+        final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR
                 .newBuild();
-        StmtTestUtils.addSources(reactor, ROOT_MODULE, IMPORTED_MODULE,
+        reactor.addSources(ROOT_MODULE, IMPORTED_MODULE,
                 SUBMODULE_1, SUBMODULE_2, SUBMODULE_TO_SUBMODULE_1);
-        EffectiveSchemaContext result = reactor.buildEffective();
+        final EffectiveSchemaContext result = reactor.buildEffective();
 
         assertNotNull(result);
 
-        Set<Module> modules = result.getModules();
+        final Set<Module> modules = result.getModules();
         assertNotNull(modules);
         assertEquals(2, modules.size());
 
         Module root = null;
         Module imported = null;
-        for (Module module : modules) {
+        for (final Module module : modules) {
             switch (module.getName()) {
             case "root-module":
                 root = module;
@@ -75,8 +77,8 @@ public class EffectiveModulesAndSubmodulesTest {
         assertNotNull(root);
         assertNotNull(imported);
 
-        Collection<DataSchemaNode> rootChildNodes = root.getChildNodes();
-        Collection<DataSchemaNode> importedChildNodes = imported
+        final Collection<DataSchemaNode> rootChildNodes = root.getChildNodes();
+        final Collection<DataSchemaNode> importedChildNodes = imported
                 .getChildNodes();
 
         assertNotNull(rootChildNodes);
@@ -85,8 +87,8 @@ public class EffectiveModulesAndSubmodulesTest {
         assertEquals(3, rootChildNodes.size());
         assertEquals(1, importedChildNodes.size());
 
-        Set<Module> rootSubmodules = root.getSubmodules();
-        Set<Module> importedSubmodules = imported.getSubmodules();
+        final Set<Module> rootSubmodules = root.getSubmodules();
+        final Set<Module> importedSubmodules = imported.getSubmodules();
 
         assertNotNull(rootSubmodules);
         assertNotNull(importedSubmodules);
@@ -96,7 +98,7 @@ public class EffectiveModulesAndSubmodulesTest {
 
         Module sub1 = null;
         Module sub2 = null;
-        for (Module rootSubmodule : rootSubmodules) {
+        for (final Module rootSubmodule : rootSubmodules) {
             switch (rootSubmodule.getName()) {
             case "submodule-1":
                 sub1 = rootSubmodule;
@@ -116,17 +118,17 @@ public class EffectiveModulesAndSubmodulesTest {
         assertEquals(QNameModule.create(new URI("root-module"),
                 SimpleDateFormatUtil.DEFAULT_DATE_REV), sub2.getQNameModule());
 
-        Collection<DataSchemaNode> sub1ChildNodes = sub1.getChildNodes();
-        Collection<DataSchemaNode> sub2ChildNodes = sub2.getChildNodes();
+        final Collection<DataSchemaNode> sub1ChildNodes = sub1.getChildNodes();
+        final Collection<DataSchemaNode> sub2ChildNodes = sub2.getChildNodes();
 
         assertNotNull(sub1ChildNodes);
         assertNotNull(sub2ChildNodes);
 
-        assertEquals(2, sub1ChildNodes.size());
+        assertEquals(1, sub1ChildNodes.size());
         assertEquals(1, sub2ChildNodes.size());
 
-        Set<Module> sub1Submodules = sub1.getSubmodules();
-        Set<Module> sub2Submodules = sub2.getSubmodules();
+        final Set<Module> sub1Submodules = sub1.getSubmodules();
+        final Set<Module> sub2Submodules = sub2.getSubmodules();
 
         assertNotNull(sub1Submodules);
         assertNotNull(sub2Submodules);
@@ -135,7 +137,7 @@ public class EffectiveModulesAndSubmodulesTest {
         assertEquals(0, sub2Submodules.size());
 
         Module sub1Submodule = null;
-        for (Module submodule : sub1Submodules) {
+        for (final Module submodule : sub1Submodules) {
             switch (submodule.getName()) {
             case "submodule-to-submodule-1":
                 sub1Submodule = submodule;
@@ -150,12 +152,12 @@ public class EffectiveModulesAndSubmodulesTest {
                 SimpleDateFormatUtil.DEFAULT_DATE_REV),
                 sub1Submodule.getQNameModule());
 
-        Collection<DataSchemaNode> sub1SubmoduleChildNodes = sub1Submodule
+        final Collection<DataSchemaNode> sub1SubmoduleChildNodes = sub1Submodule
                 .getChildNodes();
         assertNotNull(sub1SubmoduleChildNodes);
         assertEquals(1, sub1SubmoduleChildNodes.size());
 
-        Set<Module> sub1SubmoduleSubmodules = sub1Submodule.getSubmodules();
+        final Set<Module> sub1SubmoduleSubmodules = sub1Submodule.getSubmodules();
         assertNotNull(sub1SubmoduleSubmodules);
         assertEquals(0, sub1SubmoduleSubmodules.size());
 
@@ -167,7 +169,7 @@ public class EffectiveModulesAndSubmodulesTest {
 
     private static void getDataChildByNameSubTest(final EffectiveSchemaContext result,
             final Module root) {
-        DataSchemaNode containerInRoot = result.getDataChildByName(QName
+        final DataSchemaNode containerInRoot = result.getDataChildByName(QName
                 .create(root.getQNameModule(), "container-in-root-module"));
         assertNotNull(containerInRoot);
         assertEquals("desc", containerInRoot.getDescription());
@@ -175,17 +177,17 @@ public class EffectiveModulesAndSubmodulesTest {
 
     private static void findModulesSubTest(final EffectiveSchemaContext result, final Module root,
             final Module imported) throws URISyntaxException {
-        Module foundRoot = result.findModuleByName("root-module",
+        final Module foundRoot = result.findModuleByName("root-module",
                 SimpleDateFormatUtil.DEFAULT_DATE_REV);
-        Set<Module> foundRoots = result.findModuleByNamespace(new URI(
+        final Set<Module> foundRoots = result.findModuleByNamespace(new URI(
                 "root-module"));
-        Module foundRoot3 = result.findModuleByNamespaceAndRevision(new URI(
+        final Module foundRoot3 = result.findModuleByNamespaceAndRevision(new URI(
                 "root-module"), SimpleDateFormatUtil.DEFAULT_DATE_REV);
 
         assertNotNull(foundRoot);
         assertNotNull(foundRoots);
         assertEquals(1, foundRoots.size());
-        Module foundRoot2 = foundRoots.iterator().next();
+        final Module foundRoot2 = foundRoots.iterator().next();
 
         assertNotNull(foundRoot2);
         assertNotNull(foundRoot3);
@@ -194,18 +196,18 @@ public class EffectiveModulesAndSubmodulesTest {
         assertEquals(root, foundRoot2);
         assertEquals(root, foundRoot3);
 
-        Module foundImported = result.findModuleByName("imported-module",
+        final Module foundImported = result.findModuleByName("imported-module",
                 SimpleDateFormatUtil.DEFAULT_DATE_REV);
-        Set<Module> foundImporteds = result.findModuleByNamespace(new URI(
+        final Set<Module> foundImporteds = result.findModuleByNamespace(new URI(
                 "imported-module"));
-        Module foundImported3 = result.findModuleByNamespaceAndRevision(
+        final Module foundImported3 = result.findModuleByNamespaceAndRevision(
                 new URI("imported-module"),
                 SimpleDateFormatUtil.DEFAULT_DATE_REV);
 
         assertNotNull(foundImported);
         assertNotNull(foundImporteds);
         assertEquals(1, foundImporteds.size());
-        Module foundImported2 = foundImporteds.iterator().next();
+        final Module foundImported2 = foundImporteds.iterator().next();
 
         assertNotNull(foundImported2);
         assertNotNull(foundImported3);