*/
package org.opendaylight.yangtools.rfc6643.parser;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
-import java.io.IOException;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.opendaylight.yangtools.rfc6643.model.api.AliasSchemaNode;
import org.opendaylight.yangtools.rfc6643.model.api.DefValSchemaNode;
import org.opendaylight.yangtools.rfc6643.model.api.ImpliedSchemaNode;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.common.Uint32;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
-import org.opendaylight.yangtools.yang.parser.api.YangSyntaxErrorException;
import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors;
import org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
-import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
-import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
-public class IetfYangSmiv2ExtensionPluginTest {
+class IetfYangSmiv2ExtensionPluginTest {
private static final String NS = "urn:opendaylight:yang:extension:third-party";
private static final String REV = "2016-06-09";
- private static CrossSourceStatementReactor reactor;
-
- @BeforeClass
- public static void createReactor() {
- reactor = RFC7950Reactors.defaultReactorBuilder()
+ @Test
+ void testExtensions() throws Exception {
+ final var reactor = RFC7950Reactors.defaultReactorBuilder()
.addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
new DisplayHintStatementSupport(YangParserConfiguration.DEFAULT))
.addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
.addStatementSupport(ModelProcessingPhase.FULL_DECLARATION,
new SubIdStatementSupport(YangParserConfiguration.DEFAULT))
.build();
- }
-
- @AfterClass
- public static void freeReactor() {
- reactor = null;
- }
+ final var schema = reactor.newBuild()
+ .addSources(
+ YangStatementStreamSource.create(YangTextSchemaSource.forResource(
+ IetfYangSmiv2ExtensionPluginTest.class, "/foo.yang")),
+ YangStatementStreamSource.create(YangTextSchemaSource.forResource(
+ IetfYangSmiv2ExtensionPluginTest.class, "/ietf-yang-smiv2.yang")))
+ .buildEffective();
- @Test
- public void testExtensions() throws ReactorException, YangSyntaxErrorException, IOException {
- SchemaContext schema = createSchema();
-
- assertTrue(schema.getUnknownSchemaNodes().size() == 1);
- AliasSchemaNode aliasExtEffectStmt = (AliasSchemaNode) schema.getUnknownSchemaNodes().iterator().next();
- assertEquals(aliasExtEffectStmt.getArgument(), "ifXTable");
- assertTrue(aliasExtEffectStmt.getUnknownSchemaNodes().size() == 1);
- OidSchemaNode oidExtEffectStmt = (OidSchemaNode) aliasExtEffectStmt.getUnknownSchemaNodes().iterator().next();
- assertEquals(oidExtEffectStmt.getArgument().toString(), "1.3.6.1.2.1.31.1.1");
+ assertEquals(1, schema.getUnknownSchemaNodes().size());
+ final var aliasExtEffectStmt = assertInstanceOf(AliasSchemaNode.class,
+ schema.getUnknownSchemaNodes().iterator().next());
+ assertEquals("ifXTable", aliasExtEffectStmt.getArgument());
+ assertEquals(1, aliasExtEffectStmt.getUnknownSchemaNodes().size());
+ final var oidExtEffectStmt = assertInstanceOf(OidSchemaNode.class,
+ aliasExtEffectStmt.getUnknownSchemaNodes().iterator().next());
+ assertEquals("1.3.6.1.2.1.31.1.1", oidExtEffectStmt.getArgument().toString());
- final DataSchemaNode dataChildByName = schema.getDataChildByName(QName.create(NS, REV, "root"));
- assertTrue(dataChildByName instanceof ContainerSchemaNode);
- final ContainerSchemaNode root = (ContainerSchemaNode) dataChildByName;
+ final var root = assertInstanceOf(ContainerSchemaNode.class,
+ schema.dataChildByName(QName.create(NS, REV, "root")));
assertEquals(1, root.getUnknownSchemaNodes().size());
- OidSchemaNode oid = (OidSchemaNode) root.getUnknownSchemaNodes().iterator().next();
- assertEquals(oid.getArgument().toString(), "1");
+ final var oid = assertInstanceOf(OidSchemaNode.class, root.getUnknownSchemaNodes().iterator().next());
+ assertEquals("1", oid.getArgument().toString());
- ListSchemaNode ifStackEntry = (ListSchemaNode) root.getDataChildByName(QName.create(NS, REV, "ifStackEntry"));
+ final var ifStackEntry = assertInstanceOf(ListSchemaNode.class,
+ root.dataChildByName(QName.create(NS, REV, "ifStackEntry")));
assertEquals(2, ifStackEntry.getUnknownSchemaNodes().size());
ifStackEntry.getUnknownSchemaNodes().forEach(unknownSchemaNode -> {
- if (unknownSchemaNode instanceof OidSchemaNode) {
- assertEquals(((OidSchemaNode) unknownSchemaNode).getArgument().toString(),
- ObjectIdentifier.forString("1.1").toString());
- } else if (unknownSchemaNode instanceof ImpliedSchemaNode) {
- assertEquals(((ImpliedSchemaNode) unknownSchemaNode).getArgument(), "ifStackHigherLayer");
+ if (unknownSchemaNode instanceof OidSchemaNode oidSchema) {
+ assertEquals(ObjectIdentifier.forString("1.1"), oidSchema.getArgument());
+ } else if (unknownSchemaNode instanceof ImpliedSchemaNode impliedSchema) {
+ assertEquals("ifStackHigherLayer", impliedSchema.getArgument());
}
});
- LeafSchemaNode ifStackHigherLayer = (LeafSchemaNode)
- ifStackEntry.getDataChildByName(QName.create(NS, REV, "ifStackHigherLayer"));
-
+ final var ifStackHigherLayer = assertInstanceOf(LeafSchemaNode.class,
+ ifStackEntry.dataChildByName(QName.create(NS, REV, "ifStackHigherLayer")));
ifStackHigherLayer.getUnknownSchemaNodes().forEach(unknownSchemaNode -> {
- if (unknownSchemaNode instanceof MaxAccessSchemaNode) {
- final MaxAccessSchemaNode maxAccess = (MaxAccessSchemaNode) unknownSchemaNode;
+ if (unknownSchemaNode instanceof MaxAccessSchemaNode maxAccess) {
assertEquals(MaxAccess.NOT_ACCESSIBLE, maxAccess.getArgument());
}
});
- LeafSchemaNode testNumberLeaf = (LeafSchemaNode)
- ifStackEntry.getDataChildByName(QName.create(NS, REV, "test-number"));
+ final var testNumberLeaf = assertInstanceOf(LeafSchemaNode.class,
+ ifStackEntry.getDataChildByName(QName.create(NS, REV, "test-number")));
assertEquals(3, testNumberLeaf.getUnknownSchemaNodes().size());
testNumberLeaf.getUnknownSchemaNodes().forEach(unknownSchemaNode -> {
- if (unknownSchemaNode instanceof SubIdSchemaNode) {
- assertEquals(Uint32.TWO, ((SubIdSchemaNode) unknownSchemaNode).getArgument());
- } else if (unknownSchemaNode instanceof DefValSchemaNode) {
- assertEquals("0", ((DefValSchemaNode) unknownSchemaNode).getArgument());
+ if (unknownSchemaNode instanceof SubIdSchemaNode subId) {
+ assertEquals(Uint32.TWO, subId.getArgument());
+ } else if (unknownSchemaNode instanceof DefValSchemaNode defVal) {
+ assertEquals("0", defVal.getArgument());
}
});
}
-
- private static SchemaContext createSchema() throws ReactorException, YangSyntaxErrorException, IOException {
- return reactor.newBuild()
- .addSources(
- YangStatementStreamSource.create(YangTextSchemaSource.forResource(
- IetfYangSmiv2ExtensionPluginTest.class, "/foo.yang")),
- YangStatementStreamSource.create(YangTextSchemaSource.forResource(
- IetfYangSmiv2ExtensionPluginTest.class, "/ietf-yang-smiv2.yang")))
- .buildEffective();
- }
}