X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=parser%2Fyang-parser-rfc7950%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fstmt%2FYangParserTest.java;h=86c91d030c3a4d506d7906c090435f4487161aeb;hb=bf25c16c89625837be48ee685184707339f487ff;hp=95d7d527afe5351a0c4d8506469f97684ba27b10;hpb=f49ee8de0d617ce6ad3084ef433f39cf59c8ae11;p=yangtools.git diff --git a/parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java b/parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java index 95d7d527af..86c91d030c 100644 --- a/parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java +++ b/parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java @@ -7,17 +7,18 @@ */ package org.opendaylight.yangtools.yang.stmt; +import static org.hamcrest.CoreMatchers.instanceOf; +import static org.hamcrest.CoreMatchers.startsWith; +import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; -import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource; import com.google.common.collect.Range; import com.google.common.collect.RangeSet; -import java.io.IOException; -import java.net.URISyntaxException; import java.text.ParseException; import java.util.ArrayList; import java.util.Collection; @@ -28,6 +29,7 @@ import java.util.Set; import org.junit.Test; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.Revision; +import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified; import org.opendaylight.yangtools.yang.common.XMLNamespace; import org.opendaylight.yangtools.yang.common.YangVersion; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; @@ -45,7 +47,6 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode; import org.opendaylight.yangtools.yang.model.api.ModuleImport; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; -import org.opendaylight.yangtools.yang.model.api.SchemaContext; import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute; @@ -60,12 +61,8 @@ import org.opendaylight.yangtools.yang.model.api.type.TypeDefinitions; import org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition; import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition; import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes; -import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; -import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; import org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException; 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.BuildAction; public class YangParserTest extends AbstractModelTest { @Test @@ -79,11 +76,11 @@ public class YangParserTest extends AbstractModelTest { assertEquals(2, imports.size()); final ModuleImport import2 = TestUtils.findImport(imports, "br"); - assertEquals("bar", import2.getModuleName()); + assertEquals(Unqualified.of("bar"), import2.getModuleName()); assertEquals(Revision.ofNullable("2013-07-03"), import2.getRevision()); final ModuleImport import3 = TestUtils.findImport(imports, "bz"); - assertEquals("baz", import3.getModuleName()); + assertEquals(Unqualified.of("baz"), import3.getModuleName()); assertEquals(Revision.ofNullable("2013-02-27"), import3.getRevision()); assertEquals(Optional.of("opendaylight"), FOO.getOrganization()); @@ -572,40 +569,28 @@ public class YangParserTest extends AbstractModelTest { } @Test - public void unknownStatementInSubmoduleHeaderTest() throws IOException, URISyntaxException, ReactorException { - final StatementStreamSource yang1 = sourceForResource("/yang-grammar-test/revisions-extension.yang"); - final StatementStreamSource yang2 = sourceForResource("/yang-grammar-test/submodule-header-extension.yang"); - TestUtils.parseYangSources(yang1, yang2); + public void unknownStatementInSubmoduleHeaderTest() throws Exception { + TestUtils.parseYangSource( + "/yang-grammar-test/revisions-extension.yang", + "/yang-grammar-test/submodule-header-extension.yang"); } @Test - public void unknownStatementBetweenRevisionsTest() throws ReactorException { - final SchemaContext result = RFC7950Reactors.defaultReactor().newBuild() - .addSource(sourceForResource("/yang-grammar-test/revisions-extension.yang")) - .addSource(sourceForResource("/yang-grammar-test/submodule-header-extension.yang")) - .buildEffective(); - assertNotNull(result); + public void unknownStatementBetweenRevisionsTest() throws Exception { + TestUtils.parseYangSource( + "/yang-grammar-test/revisions-extension.yang", + "/yang-grammar-test/submodule-header-extension.yang"); } @Test public void unknownStatementsInStatementsTest() { - // FIXME: use a utility for this loading - final StatementStreamSource yangFile1 = sourceForResource( - "/yang-grammar-test/stmtsep-in-statements.yang"); - final StatementStreamSource yangFile2 = sourceForResource( - "/yang-grammar-test/stmtsep-in-statements2.yang"); - final StatementStreamSource yangFile3 = sourceForResource( - "/yang-grammar-test/stmtsep-in-statements-sub.yang"); - - final BuildAction reactor = RFC7950Reactors.defaultReactor().newBuild() - .addSources(yangFile1, yangFile2, yangFile3); - // TODO: change test or create new module in order to respect new statement parser validations - try { - final SchemaContext result = reactor.buildEffective(); - } catch (final ReactorException e) { - assertEquals(SomeModifiersUnresolvedException.class, e.getClass()); - assertTrue(e.getCause() instanceof SourceException); - assertTrue(e.getCause().getMessage().startsWith("aaa is not a YANG statement or use of extension")); - } + final var ex = assertThrows(SomeModifiersUnresolvedException.class, + () -> TestUtils.parseYangSource( + "/yang-grammar-test/stmtsep-in-statements.yang", + "/yang-grammar-test/stmtsep-in-statements2.yang", + "/yang-grammar-test/stmtsep-in-statements-sub.yang")); + final var cause = ex.getCause(); + assertThat(cause, instanceOf(SourceException.class)); + assertThat(cause.getMessage(), startsWith("aaa is not a YANG statement or use of extension")); } }