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 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);
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(), " ");
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:
}
}
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:
}
}
SimpleDateFormatUtil.DEFAULT_DATE_REV),
sub1Submodule.getQNameModule());
- final Collection<DataSchemaNode> sub1SubmoduleChildNodes = sub1Submodule
- .getChildNodes();
+ final Collection<DataSchemaNode> sub1SubmoduleChildNodes = sub1Submodule.getChildNodes();
assertNotNull(sub1SubmoduleChildNodes);
assertEquals(1, sub1SubmoduleChildNodes.size());
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);
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);
assertFalse(root.equals(imported));
}
-
}