Refactored YANG types resolving.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / test / java / org / opendaylight / controller / yang / model / parser / impl / YangModelParserListenerTest.java
diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/test/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserListenerTest.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/test/java/org/opendaylight/controller/yang/model/parser/impl/YangModelParserListenerTest.java
deleted file mode 100644 (file)
index 1f0cb03..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*\r
- * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
- *\r
- * This program and the accompanying materials are made available under the\r
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
- * and is available at http://www.eclipse.org/legal/epl-v10.html\r
- */\r
-package org.opendaylight.controller.yang.model.parser.impl;\r
-\r
-import static org.junit.Assert.*;\r
-\r
-import java.io.IOException;\r
-import java.io.InputStream;\r
-import java.net.URI;\r
-import java.text.DateFormat;\r
-import java.text.SimpleDateFormat;\r
-import java.util.ArrayList;\r
-import java.util.Collections;\r
-import java.util.Date;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import org.antlr.v4.runtime.ANTLRInputStream;\r
-import org.antlr.v4.runtime.CommonTokenStream;\r
-import org.antlr.v4.runtime.tree.ParseTree;\r
-import org.antlr.v4.runtime.tree.ParseTreeWalker;\r
-import org.junit.Ignore;\r
-import org.junit.Test;\r
-import org.opendaylight.controller.antlrv4.code.gen.YangLexer;\r
-import org.opendaylight.controller.antlrv4.code.gen.YangParser;\r
-import org.opendaylight.controller.yang.common.QName;\r
-import org.opendaylight.controller.yang.model.api.ContainerSchemaNode;\r
-import org.opendaylight.controller.yang.model.api.DataNodeContainer;\r
-import org.opendaylight.controller.yang.model.api.DataSchemaNode;\r
-import org.opendaylight.controller.yang.model.api.LeafSchemaNode;\r
-import org.opendaylight.controller.yang.model.api.ListSchemaNode;\r
-import org.opendaylight.controller.yang.model.api.Module;\r
-import org.opendaylight.controller.yang.model.api.ModuleImport;\r
-import org.opendaylight.controller.yang.model.api.SchemaNode;\r
-import org.opendaylight.controller.yang.model.api.SchemaPath;\r
-import org.opendaylight.controller.yang.model.api.Status;\r
-import org.opendaylight.controller.yang.model.api.TypeDefinition;\r
-import org.opendaylight.controller.yang.model.parser.builder.impl.ModuleBuilder;\r
-import org.opendaylight.controller.yang.model.util.Leafref;\r
-import org.opendaylight.controller.yang.model.util.UnknownType;\r
-\r
-public class YangModelParserListenerTest {\r
-\r
-    @Test\r
-    public void testParseImport() throws Exception {\r
-        Module module = getModule("/abstract-topology.yang");\r
-\r
-        Set<ModuleImport> imports = module.getImports();\r
-        assertEquals(1, imports.size());\r
-        ModuleImport moduleImport = imports.iterator().next();\r
-\r
-        assertEquals("inet", moduleImport.getPrefix());\r
-\r
-        DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");\r
-        Date expectedDate = simpleDateFormat.parse("2010-09-24");\r
-        assertEquals(expectedDate, moduleImport.getRevision());\r
-    }\r
-\r
-    @Test\r
-    public void testParseHeaders() throws Exception {\r
-        Module module = getModule("/abstract-topology.yang");\r
-\r
-        URI namespace = module.getNamespace();\r
-        URI expectedNS = URI.create("");\r
-        assertEquals(expectedNS, namespace);\r
-\r
-        DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");\r
-        Date expectedDate = simpleDateFormat.parse("2013-02-08");\r
-        assertEquals(expectedDate, module.getRevision());\r
-\r
-        String prefix = module.getPrefix();\r
-        String expectedPrefix = "tp";\r
-        assertEquals(expectedPrefix, prefix);\r
-\r
-        String expectedDescription = "This module contains the definitions of elements that creates network";\r
-        assertTrue(module.getDescription().contains(expectedDescription));\r
-\r
-        String expectedReference = "~~~ WILL BE DEFINED LATER";\r
-        assertEquals(expectedReference, module.getReference());\r
-\r
-        assertEquals("1", module.getYangVersion());\r
-    }\r
-\r
-    @Test\r
-    public void testParseLeafref() throws Exception {\r
-        Module module = getModule("/abstract-topology.yang");\r
-\r
-        Set<TypeDefinition<?>> typedefs = module.getTypeDefinitions();\r
-        assertEquals(2, typedefs.size());\r
-        for(TypeDefinition<?> td : typedefs) {\r
-            Leafref baseType = (Leafref)td.getBaseType();\r
-            if(td.getQName().getLocalName().equals("node-id-ref")) {\r
-                assertEquals("/tp:topology/tp:network-nodes/tp:network-node/tp:node-id", baseType.getPathStatement().toString());\r
-            } else {\r
-                assertEquals("/tp:topology/tp:network-links/tp:network-link/tp:link-id", baseType.getPathStatement().toString());\r
-            }\r
-        }\r
-    }\r
-    \r
-    @Ignore\r
-    @Test\r
-    public void testParseModule() throws IOException {\r
-        //TODO: fix test\r
-        Module module = getModule("/test-model.yang");\r
-\r
-        URI namespace = module.getNamespace();\r
-        Date revision = module.getRevision();\r
-        String prefix = module.getPrefix();\r
-\r
-        String expectedDescription = "module description";\r
-        assertEquals(expectedDescription, module.getDescription());\r
-\r
-        String expectedReference = "module reference";\r
-        assertEquals(expectedReference, module.getReference());\r
-\r
-        Set<TypeDefinition<?>> typedefs = module.getTypeDefinitions();\r
-        assertEquals(10, typedefs.size());\r
-\r
-        Set<DataSchemaNode> childNodes = module.getChildNodes();\r
-        assertEquals(1, childNodes.size());\r
-\r
-        final String containerName = "network";\r
-        final QName containerQName = new QName(namespace, revision, prefix, containerName);\r
-        ContainerSchemaNode tested = (ContainerSchemaNode) module.getChildNodes().iterator().next();\r
-        DataSchemaNode container1 = module.getDataChildByName(containerName);\r
-        DataSchemaNode container2 = module.getDataChildByName(containerQName);\r
-\r
-        assertEquals(tested, container1);\r
-        assertEquals(container1, container2);\r
-    }\r
-\r
-    @Ignore\r
-    @Test\r
-    public void testParseContainer() throws IOException {\r
-        //TODO: fix test\r
-        Module module = getModule("/test-model.yang");\r
-\r
-        URI namespace = module.getNamespace();\r
-        Date revision = module.getRevision();\r
-        String prefix = module.getPrefix();\r
-        final QName containerQName = new QName(namespace, revision, prefix, "network");\r
-\r
-        ContainerSchemaNode tested = (ContainerSchemaNode)module.getDataChildByName(containerQName);\r
-\r
-        Set<DataSchemaNode> containerChildNodes = tested.getChildNodes();\r
-        assertEquals(3, containerChildNodes.size());\r
-\r
-        String expectedDescription = "network-description";\r
-        String expectedReference = "network-reference";\r
-        Status expectedStatus = Status.OBSOLETE;\r
-        testDesc_Ref_Status(tested, expectedDescription, expectedReference, expectedStatus);\r
-\r
-        List<QName> path = new ArrayList<QName>();\r
-        path.add(new QName(namespace, revision, prefix, "test-model"));\r
-        path.add(containerQName);\r
-        SchemaPath expectedSchemaPath = new SchemaPath(path, true);\r
-        assertEquals(expectedSchemaPath, tested.getPath());\r
-\r
-        assertTrue(tested.isConfiguration());\r
-        assertTrue(tested.isPresenceContainer());\r
-    }\r
-\r
-    @Ignore\r
-    @Test\r
-    public void testParseList() throws IOException {\r
-        //TODO: fix test\r
-        Module module = getModule("/test-model.yang");\r
-\r
-        URI namespace = module.getNamespace();\r
-        Date revision = module.getRevision();\r
-        String prefix = module.getPrefix();\r
-        final QName listQName = new QName(namespace, revision, prefix, "topology");\r
-\r
-        DataNodeContainer networkContainer = (DataNodeContainer)module.getDataChildByName("network");\r
-        DataNodeContainer topologiesContainer = (DataNodeContainer)networkContainer.getDataChildByName("topologies");\r
-        ListSchemaNode tested = (ListSchemaNode)topologiesContainer.getDataChildByName(listQName);\r
-        assertEquals(listQName, tested.getQName());\r
-\r
-        String expectedDescription = "Test description of list 'topology'.";\r
-        String expectedReference = null;\r
-        Status expectedStatus = Status.CURRENT;\r
-        testDesc_Ref_Status(tested, expectedDescription, expectedReference, expectedStatus);\r
-\r
-        List<QName> path = new ArrayList<QName>();\r
-        path.add(new QName(namespace, revision, prefix, "test-model"));\r
-        path.add(new QName(namespace, revision, prefix, "network"));\r
-        path.add(new QName(namespace, revision, prefix, "topologies"));\r
-        path.add(listQName);\r
-        SchemaPath expectedSchemaPath = new SchemaPath(path, true);\r
-        assertEquals(expectedSchemaPath, tested.getPath());\r
-\r
-        List<QName> expectedKey = new ArrayList<QName>();\r
-        expectedKey.add(new QName(namespace, revision, prefix, "topology-id"));\r
-        assertEquals(expectedKey, tested.getKeyDefinition());\r
-\r
-        assertEquals(Collections.EMPTY_SET, tested.getTypeDefinitions());\r
-        assertEquals(Collections.EMPTY_SET, tested.getUses());\r
-        assertEquals(Collections.EMPTY_SET, tested.getGroupings());\r
-\r
-        assertTrue(tested.getDataChildByName("topology-id") instanceof LeafSchemaNode);\r
-    }\r
-    \r
-    @Ignore\r
-    @Test\r
-    public void testParseLeaf() throws IOException {\r
-        //TODO: fix test\r
-        Module module = getModule("/test-model.yang");\r
-\r
-        URI namespace = module.getNamespace();\r
-        Date revision = module.getRevision();\r
-        String prefix = module.getPrefix();\r
-        final QName leafQName = new QName(namespace, revision, prefix, "topology-id");\r
-\r
-        DataNodeContainer networkContainer = (DataNodeContainer)module.getDataChildByName("network");\r
-        DataNodeContainer topologiesContainer = (DataNodeContainer)networkContainer.getDataChildByName("topologies");\r
-        DataNodeContainer topologyList = (DataNodeContainer)topologiesContainer.getDataChildByName("topology");\r
-        LeafSchemaNode tested = (LeafSchemaNode)topologyList.getDataChildByName(leafQName);\r
-        assertEquals(leafQName, tested.getQName());\r
-\r
-        String expectedDescription = "Test description of leaf 'topology-id'";\r
-        String expectedReference = null;\r
-        Status expectedStatus = Status.CURRENT;\r
-        testDesc_Ref_Status(tested, expectedDescription, expectedReference, expectedStatus);\r
-\r
-        List<QName> path = new ArrayList<QName>();\r
-        path.add(new QName(namespace, revision, prefix, "test-model"));\r
-        path.add(new QName(namespace, revision, prefix, "network"));\r
-        path.add(new QName(namespace, revision, prefix, "topologies"));\r
-        path.add(new QName(namespace, revision, prefix, "topology"));\r
-        path.add(leafQName);\r
-        SchemaPath expectedSchemaPath = new SchemaPath(path, true);\r
-        assertEquals(expectedSchemaPath, tested.getPath());\r
-\r
-        UnknownType.Builder typeBuilder = new UnknownType.Builder(new QName(namespace, revision, prefix, "topology-id"), null, null);\r
-        TypeDefinition<?> expectedType = typeBuilder.build();\r
-        assertEquals(expectedType, tested.getType());\r
-    }\r
-\r
-\r
-    private void testDesc_Ref_Status(SchemaNode tested, String expectedDescription, String expectedReference, Status expectedStatus) {\r
-        assertEquals(expectedDescription, tested.getDescription());\r
-        assertEquals(expectedReference, tested.getReference());\r
-        assertEquals(expectedStatus, tested.getStatus());\r
-    }\r
-\r
-    private Module getModule(String testFile) throws IOException {\r
-        ModuleBuilder builder = getBuilder(testFile);\r
-        return builder.build();\r
-    }\r
-\r
-    private ModuleBuilder getBuilder(String fileName) throws IOException {\r
-        final InputStream inStream = getClass().getResourceAsStream(fileName);\r
-        ANTLRInputStream input = new ANTLRInputStream(inStream);\r
-        final YangLexer lexer = new YangLexer(input);\r
-        final CommonTokenStream tokens = new CommonTokenStream(lexer);\r
-        final YangParser parser = new YangParser(tokens);\r
-\r
-        final ParseTree tree = parser.yang();\r
-        final ParseTreeWalker walker = new ParseTreeWalker();\r
-\r
-        final YangModelParserListenerImpl modelParser = new YangModelParserListenerImpl();\r
-        walker.walk(modelParser, tree);\r
-        return modelParser.getModuleBuilder();\r
-    }\r
-\r
-}\r