first implementation of yang-data-api
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-data-impl / src / test / java / org / opendaylight / controller / yang / data / impl / NodeModificationBuilderImplTest.java
diff --git a/opendaylight/sal/yang-prototype/yang/yang-data-impl/src/test/java/org/opendaylight/controller/yang/data/impl/NodeModificationBuilderImplTest.java b/opendaylight/sal/yang-prototype/yang/yang-data-impl/src/test/java/org/opendaylight/controller/yang/data/impl/NodeModificationBuilderImplTest.java
new file mode 100755 (executable)
index 0000000..2df397a
--- /dev/null
@@ -0,0 +1,92 @@
+/*\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 java.net.URI;\r
+import java.util.Date;\r
+\r
+import junit.framework.Assert;\r
+\r
+import org.junit.Before;\r
+import org.junit.Test;\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.MutableCompositeNode;\r
+import org.opendaylight.controller.yang.data.api.MutableSimpleNode;\r
+import org.opendaylight.controller.yang.data.api.SimpleNode;\r
+import org.opendaylight.controller.yang.model.api.SchemaContext;\r
+import org.w3c.dom.Document;\r
+\r
+/**\r
+ * @author michal.rehak\r
+ * \r
+ */\r
+public class NodeModificationBuilderImplTest {\r
+\r
+    private SchemaContext schemaCtx;\r
+    private QName qName;\r
+    private CompositeNode network;\r
+    private NodeModificationBuilderImpl nodeModificationBuilder;\r
+\r
+    /**\r
+     * prepare schemaContext\r
+     * @throws Exception \r
+     */\r
+    @Before\r
+    public void setUp() throws Exception {\r
+        schemaCtx = NodeHelper.loadSchemaContext();\r
+\r
+        qName = new QName(\r
+                new URI("urn:opendaylight:controller:network"), \r
+                new Date(1369000800000L), "topos");\r
+        network = NodeHelper.buildTestConfigTree(qName);\r
+        \r
+        nodeModificationBuilder = new NodeModificationBuilderImpl(network, schemaCtx);\r
+    }\r
+\r
+    /**\r
+     * Test method for\r
+     * {@link org.opendaylight.controller.yang.data.impl.NodeModificationBuilderImpl#buildDiffTree()}\r
+     * .\r
+     * @throws Exception \r
+     */\r
+    @Test\r
+    public void testBuildDiffTree() throws Exception {\r
+        Document networkShadow = NodeUtils.buildShadowDomTree(network);\r
+        SimpleNode<String> needle = NodeUtils.findNodeByXpath(networkShadow, \r
+                "//node[node-id='nodeId_19']//termination-point[2]/tp-id");\r
+        \r
+        @SuppressWarnings("unchecked")\r
+        MutableSimpleNode<String> mutableNeedle = (MutableSimpleNode<String>) \r
+                nodeModificationBuilder.getMutableEquivalent(needle);\r
+        \r
+        mutableNeedle.setValue("tpId_18x");\r
+        nodeModificationBuilder.replaceNode(mutableNeedle);\r
+        CompositeNode diffTree = nodeModificationBuilder.buildDiffTree();\r
+        \r
+        Document diffShadow = NodeUtils.buildShadowDomTree(diffTree);\r
+        NodeHelper.dumpDoc(diffShadow, System.out);\r
+    }\r
+\r
+    /**\r
+     * Test method for\r
+     * {@link org.opendaylight.controller.yang.data.impl.NodeModificationBuilderImpl#getMutableEquivalent(org.opendaylight.controller.yang.data.api.Node)}\r
+     * .\r
+     */\r
+    @Test\r
+    public void testGetMutableEquivalent() {\r
+        MutableCompositeNode rootMutable = (MutableCompositeNode) \r
+                nodeModificationBuilder.getMutableEquivalent(network);\r
+        \r
+        CompositeNode topologies = network.getCompositesByName("topologies").iterator().next();\r
+        CompositeNode topologiesMutable = rootMutable.getCompositesByName("topologies").iterator().next();\r
+        \r
+        Assert.assertSame(topologiesMutable, nodeModificationBuilder.getMutableEquivalent(topologies));\r
+    }\r
+\r
+}\r