import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
import java.util.List;
import org.junit.Test;
+import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.Module;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors;
import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
-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 ExtensionStmtTest {
-
- private static final YangStatementSourceImpl EXT_DEF_MODULE = new YangStatementSourceImpl("/model/bar.yang",
- false);
- private static final YangStatementSourceImpl EXT_DEF_MODULE2 = new YangStatementSourceImpl
- ("/semantic-statement-parser/ext-typedef.yang",
- false);
- private static final YangStatementSourceImpl EXT_USE_MODULE = new YangStatementSourceImpl
- ("/semantic-statement-parser/ext-use.yang",
- false);
-
@Test
public void testExtensionDefinition() throws ReactorException {
- CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
- StmtTestUtils.addSources(reactor, EXT_DEF_MODULE);
-
- EffectiveSchemaContext result = reactor.buildEffective();
+ final SchemaContext result = RFC7950Reactors.defaultReactor().newBuild()
+ .addSource(sourceForResource("/model/bar.yang"))
+ .buildEffective();
assertNotNull(result);
- Module testModule = result.findModuleByName("bar", null);
+ final Module testModule = result.findModules("bar").iterator().next();
assertNotNull(testModule);
assertEquals(1, testModule.getExtensionSchemaNodes().size());
- List<ExtensionDefinition> extensions = testModule.getExtensionSchemaNodes();
- ExtensionDefinition extension = extensions.get(0);
+ final List<ExtensionDefinition> extensions = testModule.getExtensionSchemaNodes();
+ final ExtensionDefinition extension = extensions.get(0);
assertEquals("opendaylight", extension.getQName().getLocalName());
assertEquals("name", extension.getArgument());
assertTrue(extension.isYinElement());
@Test
public void testExtensionUsage() throws ReactorException {
- CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild();
- StmtTestUtils.addSources(reactor, EXT_DEF_MODULE2, EXT_USE_MODULE);
-
- EffectiveSchemaContext result = reactor.buildEffective();
+ final SchemaContext result = RFC7950Reactors.defaultReactor().newBuild()
+ .addSource(sourceForResource("/semantic-statement-parser/ext-typedef.yang"))
+ .addSource(sourceForResource("/semantic-statement-parser/ext-use.yang"))
+ .buildEffective();
assertNotNull(result);
- Module testModule1 = result.findModuleByName("ext-typedef", null);
+ final Module testModule1 = result.findModules("ext-typedef").iterator().next();
assertNotNull(testModule1);
assertEquals(1, testModule1.getExtensionSchemaNodes().size());
- List<ExtensionDefinition> extensions = testModule1.getExtensionSchemaNodes();
- ExtensionDefinition extensionDefinition = extensions.get(0);
+ final List<ExtensionDefinition> extensions = testModule1.getExtensionSchemaNodes();
+ final ExtensionDefinition extensionDefinition = extensions.get(0);
- Module testModule2 = result.findModuleByName("ext-use", null);
+ final Module testModule2 = result.findModules("ext-use").iterator().next();
assertNotNull(testModule2);
- LeafSchemaNode leaf = (LeafSchemaNode) testModule2.getDataChildByName("value");
+ final LeafSchemaNode leaf = (LeafSchemaNode) testModule2.getDataChildByName(
+ QName.create(testModule2.getQNameModule(), "value"));
assertNotNull(leaf);
assertEquals(1, leaf.getUnknownSchemaNodes().size());
- List<UnknownSchemaNode> unknownNodes = leaf.getUnknownSchemaNodes();
- UnknownSchemaNode extensionUse = unknownNodes.get(0);
+ final List<UnknownSchemaNode> unknownNodes = leaf.getUnknownSchemaNodes();
+ final UnknownSchemaNode extensionUse = unknownNodes.get(0);
assertEquals(extensionDefinition.getQName().getLocalName(), extensionUse.getExtensionDefinition().getQName()
.getLocalName());
assertEquals(extensionDefinition.getArgument(), extensionUse.getExtensionDefinition().getArgument());