Increased version of binding-generator to 0.5.5-SNAPSHOT.
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-data-impl / src / test / java / org / opendaylight / controller / yang / data / impl / NodeHelper.java
diff --git a/opendaylight/sal/yang-prototype/yang/yang-data-impl/src/test/java/org/opendaylight/controller/yang/data/impl/NodeHelper.java b/opendaylight/sal/yang-prototype/yang/yang-data-impl/src/test/java/org/opendaylight/controller/yang/data/impl/NodeHelper.java
deleted file mode 100644 (file)
index a7e7d2f..0000000
+++ /dev/null
@@ -1,411 +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.data.impl;\r
-\r
-import groovy.lang.Binding;\r
-import groovy.lang.GroovyShell;\r
-import groovy.lang.Script;\r
-\r
-import java.io.ByteArrayInputStream;\r
-import java.io.ByteArrayOutputStream;\r
-import java.io.IOException;\r
-import java.io.InputStream;\r
-import java.io.InputStreamReader;\r
-import java.io.PrintStream;\r
-import java.io.Reader;\r
-import java.io.StringWriter;\r
-import java.lang.reflect.Method;\r
-import java.text.MessageFormat;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import javax.xml.transform.OutputKeys;\r
-import javax.xml.transform.Transformer;\r
-import javax.xml.transform.TransformerFactory;\r
-import javax.xml.transform.dom.DOMSource;\r
-import javax.xml.transform.stream.StreamResult;\r
-\r
-import org.custommonkey.xmlunit.Diff;\r
-import org.junit.Assert;\r
-import org.opendaylight.controller.yang.common.QName;\r
-import org.opendaylight.controller.yang.data.api.CompositeNode;\r
-import org.opendaylight.controller.yang.data.api.Node;\r
-import org.opendaylight.controller.yang.model.api.Module;\r
-import org.opendaylight.controller.yang.model.api.SchemaContext;\r
-import org.opendaylight.controller.yang.model.parser.api.YangModelParser;\r
-import org.opendaylight.controller.yang.parser.impl.YangParserImpl;\r
-import org.slf4j.Logger;\r
-import org.slf4j.LoggerFactory;\r
-import org.w3c.dom.Document;\r
-import org.xml.sax.SAXException;\r
-\r
-/**\r
- * @author michal.rehak\r
- *\r
- */\r
-public abstract class NodeHelper {\r
-    \r
-    private static final Logger LOG = LoggerFactory.getLogger(NodeHelper.class);\r
-    \r
-    /** xml source of example network configuration */\r
-    public static final String NETWORK_XML = \r
-      "<network xmlns=\"urn:opendaylight:controller:network\">\n" +\r
-      //"<network>\n" +\r
-      "    <topologies>\n" +\r
-      "        <topology>\n" +\r
-      "            <topology-id>topId_01</topology-id>\n" +\r
-      "            <nodes>\n" +\r
-      "                <node>\n" +\r
-      "                    <node-id>nodeId_02</node-id>\n" +\r
-      "                    <supporting-ne>networkId_02</supporting-ne>\n" +\r
-      "                    <termination-points>\n" +\r
-      "                        <termination-point>\n" +\r
-      "                            <tp-id>tpId_03</tp-id>\n" +\r
-      "                        </termination-point>\n" +\r
-      "                    </termination-points>\n" +\r
-      "                </node>\n" +\r
-      "                <node>\n" +\r
-      "                    <node-id>nodeId_16</node-id>\n" +\r
-      "                    <supporting-ne>networkId_17</supporting-ne>\n" +\r
-      "                    <termination-points>\n" +\r
-      "                        <termination-point>\n" +\r
-      "                            <tp-id>tpId_18</tp-id>\n" +\r
-      "                        </termination-point>\n" +\r
-      "                    </termination-points>\n" +\r
-      "                </node>\n" +\r
-      "                <node>\n" +\r
-      "                    <node-id>nodeId_19</node-id>\n" +\r
-      "                    <supporting-ne>networkId_20</supporting-ne>\n" +\r
-      "                    <termination-points>\n" +\r
-      "                        <termination-point>\n" +\r
-      "                            <tp-id>tpId_18</tp-id>\n" +\r
-      "                        </termination-point>\n" +\r
-      "                        <termination-point>\n" +\r
-      "                            <tp-id>tpId_19</tp-id>\n" +\r
-      "                        </termination-point>\n" +\r
-      "                    </termination-points>\n" +\r
-      "                </node>\n" +\r
-      "            </nodes>\n" +\r
-      "            <links>\n" +\r
-      "                <link>\n" +\r
-      "                    <link-id>linkId_04</link-id>\n" +\r
-      "                    <source>\n" +\r
-      "                        <source-node>nodeId_05</source-node>\n" +\r
-      "                        <source-tp>tpId_06</source-tp>\n" +\r
-      "                    </source>\n" +\r
-      "                    <destination>\n" +\r
-      "                        <dest-node>nodeId_07</dest-node>\n" +\r
-      "                        <dest-tp>tpId_08</dest-tp>\n" +\r
-      "                    </destination>\n" +\r
-      "                </link>\n" +\r
-      "                <link>\n" +\r
-      "                    <link-id>linkId_11</link-id>\n" +\r
-      "                    <source>\n" +\r
-      "                        <source-node>nodeId_12</source-node>\n" +\r
-      "                        <source-tp>tpId_13</source-tp>\n" +\r
-      "                    </source>\n" +\r
-      "                    <destination>\n" +\r
-      "                        <dest-node>nodeId_14</dest-node>\n" +\r
-      "                        <dest-tp>tpId_15</dest-tp>\n" +\r
-      "                    </destination>\n" +\r
-      "                </link>\n" +\r
-      "            </links>\n" +\r
-      "        </topology>\n" +\r
-      "    </topologies>\n" +\r
-      "    <network-elements>\n" +\r
-      "        <network-element>\n" +\r
-      "            <element-id>ntElementId_09</element-id>\n" +\r
-      "        </network-element>\n" +\r
-      "        <network-element>\n" +\r
-      "            <element-id>ntElementId_10</element-id>\n" +\r
-      "        </network-element>\n" +\r
-      "    </network-elements>\n" +\r
-      "</network>";\r
-\r
-    /**\r
-     * @param domTree\r
-     * @param out\r
-     * @throws Exception \r
-     */\r
-    public static void dumpDoc(Document domTree, PrintStream out) throws Exception {\r
-      TransformerFactory transformerFact = TransformerFactory.newInstance();\r
-      transformerFact.setAttribute("indent-number", 4);\r
-      Transformer transformer = transformerFact.newTransformer();\r
-      transformer.setOutputProperty(OutputKeys.INDENT, "yes");\r
-      //initialize StreamResult with File object to save to file\r
-      StreamResult result = new StreamResult(new StringWriter());\r
-      DOMSource source = new DOMSource(domTree);\r
-      transformer.transform(source, result);\r
-      String xmlString = result.getWriter().toString();\r
-      out.println(xmlString);\r
-    }\r
-    \r
-    /**\r
-     * @param qName\r
-     * @return example tree, see {@link #NETWORK_XML}\r
-     */\r
-    public static CompositeNode buildTestConfigTree(QName qName) {\r
-        List<Node<?>> value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "element-id"), null, "ntElementId_09"));\r
-        CompositeNode ntElementNode1 = NodeFactory.createImmutableCompositeNode(new QName(qName, "network-element"), null, value);\r
-        assignParentToChildren(ntElementNode1);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "element-id"), null, "ntElementId_10"));\r
-        CompositeNode ntElementNode2 = NodeFactory.createImmutableCompositeNode(new QName(qName, "network-element"), null, value);\r
-        assignParentToChildren(ntElementNode2);\r
-        \r
-        value = new ArrayList<Node<?>>();\r
-        value.add(ntElementNode1);\r
-        value.add(ntElementNode2);\r
-        CompositeNode ntElementsNode = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "network-elements"), null, value);\r
-        assignParentToChildren(ntElementsNode);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "dest-node"), null, "nodeId_07"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "dest-tp"), null, "tpId_08"));\r
-        CompositeNode destination = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "destination"), null, value);\r
-        assignParentToChildren(destination);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "source-node"), null, "nodeId_05"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "source-tp"), null, "tpId_06"));\r
-        CompositeNode source = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "source"), null, value);\r
-        assignParentToChildren(source);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "link-id"), null, "linkId_04"));\r
-        value.add(source);\r
-        value.add(destination);\r
-        CompositeNode link1 = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "link"), null, value);\r
-        assignParentToChildren(link1);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "dest-node"), null, "nodeId_14"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "dest-tp"), null, "tpId_15"));\r
-        destination = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "destination"), null, value);\r
-        assignParentToChildren(destination);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "source-node"), null, "nodeId_12"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "source-tp"), null, "tpId_13"));\r
-        source = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "source"), null, value);\r
-        assignParentToChildren(source);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "link-id"), null, "linkId_11"));\r
-        value.add(source);\r
-        value.add(destination);\r
-        CompositeNode link2 = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "link"), null, value);\r
-        assignParentToChildren(link2);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(link1);\r
-        value.add(link2);\r
-        CompositeNode links = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "links"), null, value);\r
-        assignParentToChildren(links);\r
-        \r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "tp-id"), null, "tpId_03"));\r
-        CompositeNode terminationPointNode1 = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-point"), null, value);\r
-        assignParentToChildren(terminationPointNode1);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(terminationPointNode1);\r
-        CompositeNode terminationPointsNode = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-points"), null, value);\r
-        assignParentToChildren(terminationPointsNode);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "node-id"), null, "nodeId_02"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "supporting-ne"), null, "networkId_02"));\r
-        value.add(terminationPointsNode);\r
-        CompositeNode node1Node = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "node"), null, value);\r
-        assignParentToChildren(node1Node);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "tp-id"), null, "tpId_18"));\r
-        terminationPointNode1 = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-point"), null, value);\r
-        assignParentToChildren(terminationPointNode1);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(terminationPointNode1);\r
-        terminationPointsNode = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-points"), null, value);\r
-        assignParentToChildren(terminationPointsNode);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "node-id"), null, "nodeId_16"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "supporting-ne"), null, "networkId_17"));\r
-        value.add(terminationPointsNode);\r
-        CompositeNode node2Node = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "node"), null, value);\r
-        assignParentToChildren(node2Node);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "tp-id"), null, "tpId_18"));\r
-        terminationPointNode1 = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-point"), null, value);\r
-        assignParentToChildren(terminationPointNode1);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "tp-id"), null, "tpId_19"));\r
-        CompositeNode terminationPointNode2 = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-point"), null, value);\r
-        assignParentToChildren(terminationPointNode2);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(terminationPointNode1);\r
-        value.add(terminationPointNode2);\r
-        terminationPointsNode = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "termination-points"), null, value);\r
-        assignParentToChildren(terminationPointsNode);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "node-id"), null, "nodeId_19"));\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "supporting-ne"), null, "networkId_20"));\r
-        value.add(terminationPointsNode);\r
-        CompositeNode node3Node = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "node"), null, value);\r
-        assignParentToChildren(node3Node);\r
-        \r
-        value = new ArrayList<Node<?>>(); \r
-        value.add(node1Node);\r
-        value.add(node2Node);\r
-        value.add(node3Node);\r
-        CompositeNode nodesNode = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "nodes"), null, value);\r
-        assignParentToChildren(nodesNode);\r
-        \r
-        value = new ArrayList<Node<?>>();\r
-        value.add(links);\r
-        value.add(nodesNode);\r
-        value.add(NodeFactory.createImmutableSimpleNode(new QName(qName, "topology-id"), null, "topId_01"));\r
-        CompositeNode topology = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "topology"), null, value);\r
-        assignParentToChildren(topology);\r
-        \r
-        value = new ArrayList<Node<?>>();\r
-        value.add(topology);\r
-        CompositeNode topologies = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "topologies"), null, value);\r
-        assignParentToChildren(topologies);\r
-        \r
-        value = new ArrayList<Node<?>>();\r
-        value.add(topologies);\r
-        value.add(ntElementsNode);\r
-        CompositeNode network = NodeFactory.createImmutableCompositeNode(\r
-                new QName(qName, "network"), null, value);\r
-        assignParentToChildren(network);\r
-        \r
-        return network;\r
-    }\r
-\r
-    /**\r
-     * @param parentNode\r
-     */\r
-    public static void assignParentToChildren(CompositeNode parentNode) {\r
-        for (Node<?> child : parentNode.getChildren()) {\r
-            ((AbstractNodeTO<?>) child).setParent(parentNode);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * @return schema context of controller-network.yang\r
-     */\r
-    public static SchemaContext loadSchemaContext() {\r
-        YangModelParser yParser = new YangParserImpl();\r
-        List<InputStream> yangInputStreams = new ArrayList<>();\r
-        yangInputStreams.add(NodeHelper.class.getResourceAsStream(\r
-                "/controller-network.yang"));\r
-        yangInputStreams.add(NodeHelper.class.getResourceAsStream(\r
-                "/ietf-inet-types@2010-09-24.yang"));\r
-        Set<Module> modules = yParser\r
-                .parseYangModelsFromStreams(yangInputStreams);\r
-        return yParser.resolveSchemaContext(modules);\r
-    }\r
-    \r
-    /**\r
-     * @param scriptName \r
-     * @return tree root\r
-     * @throws Exception\r
-     */\r
-    public static CompositeNode loadConfigByGroovy(String scriptName) throws Exception {\r
-       InputStream configStream = NodeHelper.class.getResourceAsStream(scriptName);\r
-       Binding binding = new Binding();\r
-       GroovyShell gShell = new GroovyShell(binding);\r
-       LOG.debug("groovy: starting script parse..  " + scriptName);\r
-               Script configScript = gShell.parse(new InputStreamReader(configStream));\r
-               LOG.debug("groovy: starting script..  " + scriptName);\r
-               configScript.run();\r
-               LOG.debug("groovy: digging result");\r
-       Object xmlGen = binding.getVariable("xmlGen");\r
-       LOG.debug("xmlGen = " + xmlGen);\r
-       Method getter = xmlGen.getClass().getDeclaredMethod("getBuilder", new Class[0]);\r
-       MyNodeBuilder builder = (MyNodeBuilder) getter.invoke(xmlGen, new Object[0]);\r
-       \r
-       return builder.getRootNode();\r
-    }\r
-    \r
-    /**\r
-     * @param pattern , e.g.: <pre>"//{0}:network/{1}:xx[text() = 'sss']"</pre>\r
-     * @param nsArg , e.g.: <pre>{"uri:ns1", "uri:ns2"}</pre>\r
-     * @return pattern with namespaces: <pre>//uri:ns1:network/uri:ns2:xx[text() = ''sss'']"</pre>\r
-     */\r
-    public static String AddNamespaceToPattern(String pattern, Object... nsArg) {\r
-        Object[] ns = nsArg;\r
-        String patternNs = pattern.replaceAll("'", "''");\r
-        if (ns == null) {\r
-            ns = new Object[]{""};\r
-        } else {\r
-            // add ':' into pattern after placeholders\r
-            patternNs = patternNs.replaceAll("(\\{[0-9]+\\})", "$1:");\r
-        }\r
-        \r
-        return MessageFormat.format(patternNs, ns);\r
-    }\r
-\r
-    /**\r
-     * @param tree\r
-     * @param xmlFile \r
-     * @param clazz \r
-     * @throws Exception\r
-     * @throws SAXException\r
-     * @throws IOException\r
-     */\r
-    public static void compareXmlTree(Document tree, String xmlFile, Class<?> clazz) throws Exception,\r
-            SAXException, IOException {\r
-        ByteArrayOutputStream actualRaw = new ByteArrayOutputStream();\r
-        dumpDoc(tree, new PrintStream(actualRaw));\r
-        Reader actualReader = new InputStreamReader(new ByteArrayInputStream(actualRaw.toByteArray()));\r
-        \r
-        Reader expectedReader = new InputStreamReader(clazz.getResourceAsStream(xmlFile));\r
-        Diff myDiff = new Diff(expectedReader, actualReader);\r
-        myDiff.overrideDifferenceListener(new IgnoreWhiteCharsDiffListener());\r
-        \r
-        boolean similar = myDiff.similar();\r
-        if (! similar) {\r
-            System.out.println(new String(actualRaw.toByteArray()));\r
-        }\r
-        Assert.assertEquals(myDiff.toString(), true, similar);\r
-    }\r
-\r
-}\r