BUG-4688: Rework SchemaContext module lookups
[yangtools.git] / yang / yang-parser-impl / src / test / java / org / opendaylight / yangtools / yang / stmt / EffectiveModulesAndSubmodulesTest.java
index a0c9a75f7b929bc5bf78e218644606409e505647..057bf5f91ce48ab73dde2eac98774a5665b3d6b4 100644 (file)
@@ -11,6 +11,7 @@ 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;
@@ -22,34 +23,34 @@ import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 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 {
         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);
-        final EffectiveSchemaContext result = reactor.buildEffective();
+        final SchemaContext result = reactor.buildEffective();
 
         assertNotNull(result);
 
@@ -61,13 +62,13 @@ public class EffectiveModulesAndSubmodulesTest {
         Module imported = null;
         for (final Module module : modules) {
             switch (module.getName()) {
-            case "root-module":
-                root = module;
-                break;
-            case "imported-module":
-                imported = module;
-                break;
-            default:
+                case "root-module":
+                    root = module;
+                    break;
+                case "imported-module":
+                    imported = module;
+                    break;
+                default:
             }
             StmtTestUtils.printReferences(module, false, "");
             StmtTestUtils.printChilds(module.getChildNodes(), "      ");
@@ -99,13 +100,13 @@ public class EffectiveModulesAndSubmodulesTest {
         Module sub2 = null;
         for (final Module rootSubmodule : rootSubmodules) {
             switch (rootSubmodule.getName()) {
-            case "submodule-1":
-                sub1 = rootSubmodule;
-                break;
-            case "submodule-2":
-                sub2 = rootSubmodule;
-                break;
-            default:
+                case "submodule-1":
+                    sub1 = rootSubmodule;
+                    break;
+                case "submodule-2":
+                    sub2 = rootSubmodule;
+                    break;
+                default:
             }
         }
 
@@ -138,10 +139,10 @@ public class EffectiveModulesAndSubmodulesTest {
         Module sub1Submodule = null;
         for (final Module submodule : sub1Submodules) {
             switch (submodule.getName()) {
-            case "submodule-to-submodule-1":
-                sub1Submodule = submodule;
-                break;
-            default:
+                case "submodule-to-submodule-1":
+                    sub1Submodule = submodule;
+                    break;
+                default:
             }
         }
 
@@ -151,8 +152,7 @@ public class EffectiveModulesAndSubmodulesTest {
                 SimpleDateFormatUtil.DEFAULT_DATE_REV),
                 sub1Submodule.getQNameModule());
 
-        final Collection<DataSchemaNode> sub1SubmoduleChildNodes = sub1Submodule
-                .getChildNodes();
+        final Collection<DataSchemaNode> sub1SubmoduleChildNodes = sub1Submodule.getChildNodes();
         assertNotNull(sub1SubmoduleChildNodes);
         assertEquals(1, sub1SubmoduleChildNodes.size());
 
@@ -163,25 +163,21 @@ public class EffectiveModulesAndSubmodulesTest {
         findModulesSubTest(result, root, imported);
 
         getDataChildByNameSubTest(result, root);
-
     }
 
-    private static void getDataChildByNameSubTest(final EffectiveSchemaContext result,
-            final Module root) {
+    private static void getDataChildByNameSubTest(final SchemaContext result, final Module root) {
         final DataSchemaNode containerInRoot = result.getDataChildByName(QName
                 .create(root.getQNameModule(), "container-in-root-module"));
         assertNotNull(containerInRoot);
         assertEquals("desc", containerInRoot.getDescription());
     }
 
-    private static void findModulesSubTest(final EffectiveSchemaContext result, final Module root,
-            final Module imported) throws URISyntaxException {
-        final Module foundRoot = result.findModuleByName("root-module",
-                SimpleDateFormatUtil.DEFAULT_DATE_REV);
-        final Set<Module> foundRoots = result.findModuleByNamespace(new URI(
-                "root-module"));
-        final Module foundRoot3 = result.findModuleByNamespaceAndRevision(new URI(
-                "root-module"), SimpleDateFormatUtil.DEFAULT_DATE_REV);
+    private static void findModulesSubTest(final SchemaContext result, final Module root, final Module imported)
+            throws URISyntaxException {
+        final Module foundRoot = result.findModule("root-module", SimpleDateFormatUtil.DEFAULT_DATE_REV).get();
+        final Set<Module> foundRoots = result.findModules(new URI("root-module"));
+        final Module foundRoot3 = result.findModule(new URI("root-module"), SimpleDateFormatUtil.DEFAULT_DATE_REV)
+                .get();
 
         assertNotNull(foundRoot);
         assertNotNull(foundRoots);
@@ -195,13 +191,10 @@ public class EffectiveModulesAndSubmodulesTest {
         assertEquals(root, foundRoot2);
         assertEquals(root, foundRoot3);
 
-        final Module foundImported = result.findModuleByName("imported-module",
-                SimpleDateFormatUtil.DEFAULT_DATE_REV);
-        final Set<Module> foundImporteds = result.findModuleByNamespace(new URI(
-                "imported-module"));
-        final Module foundImported3 = result.findModuleByNamespaceAndRevision(
-                new URI("imported-module"),
-                SimpleDateFormatUtil.DEFAULT_DATE_REV);
+        final Module foundImported = result.findModule("imported-module", SimpleDateFormatUtil.DEFAULT_DATE_REV).get();
+        final Set<Module> foundImporteds = result.findModules(new URI("imported-module"));
+        final Module foundImported3 = result.findModule(new URI("imported-module"),
+            SimpleDateFormatUtil.DEFAULT_DATE_REV).get();
 
         assertNotNull(foundImported);
         assertNotNull(foundImporteds);
@@ -217,5 +210,4 @@ public class EffectiveModulesAndSubmodulesTest {
 
         assertFalse(root.equals(imported));
     }
-
 }