Fix minor bug in FRM proactive flow code path
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-data-impl / src / test / java / org / opendaylight / controller / yang / data / impl / LazyNodeToNodeMapTest.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.yang.data.impl;\r
9 \r
10 import java.net.URI;\r
11 import java.util.Date;\r
12 \r
13 import org.junit.Assert;\r
14 import org.junit.Before;\r
15 import org.junit.Test;\r
16 import org.opendaylight.controller.yang.common.QName;\r
17 import org.opendaylight.controller.yang.data.api.CompositeNode;\r
18 import org.opendaylight.controller.yang.data.api.MutableCompositeNode;\r
19 import org.opendaylight.controller.yang.data.api.Node;\r
20 \r
21 /**\r
22  * @author michal.rehak\r
23  *\r
24  */\r
25 public class LazyNodeToNodeMapTest {\r
26     \r
27     private LazyNodeToNodeMap lazyN2N;\r
28     private CompositeNode tree;\r
29 \r
30     /**\r
31      * prepare test values\r
32      * @throws Exception \r
33      */\r
34     @Before\r
35     public void setUp() throws Exception {\r
36         lazyN2N = new LazyNodeToNodeMap();\r
37         \r
38         QName qName = new QName(\r
39                 new URI("urn:ietf:params:xml:ns:netconf:base:1.0"), \r
40                 new Date(42), "yang-data-impl-mutableTest");\r
41         \r
42         tree = NodeHelper.buildTestConfigTree(qName);\r
43     }\r
44 \r
45     /**\r
46      * Test method for {@link org.opendaylight.controller.yang.data.impl.LazyNodeToNodeMap#getMutableEquivalent(org.opendaylight.controller.yang.data.api.Node)}.\r
47      */\r
48     @Test\r
49     public void testGetMutableEquivalent() {\r
50         MutableCompositeNode mutableTree = (MutableCompositeNode) lazyN2N.getMutableEquivalent(tree);\r
51         \r
52         Assert.assertNull(mutableTree.getParent());\r
53         Assert.assertEquals(tree.getNodeType(), mutableTree.getNodeType());\r
54         Assert.assertEquals(1, lazyN2N.getKeyNodes().size());\r
55         \r
56         Node<?> subNode = tree.getCompositesByName("topologies").iterator().next();\r
57         Node<?> subMutant = lazyN2N.getMutableEquivalent(subNode);\r
58         \r
59         Assert.assertNotNull(subMutant.getParent());\r
60         Assert.assertEquals(subNode.getNodeType(), subMutant.getNodeType());\r
61         Assert.assertEquals(2, lazyN2N.getKeyNodes().size());\r
62         \r
63         Assert.assertEquals(mutableTree, subMutant.getParent());\r
64         Assert.assertEquals(mutableTree.getChildren().size(), 1);\r
65         Assert.assertEquals(mutableTree.getChildren().iterator().next(), subMutant);\r
66     }\r
67 \r
68     /**\r
69      * Test method for {@link org.opendaylight.controller.yang.data.impl.LazyNodeToNodeMap#getMutableRoot()}.\r
70      */\r
71     @Test\r
72     public void testGetMutableRoot() {\r
73         Node<?> subNode = tree.getCompositesByName("topologies").iterator().next();\r
74         Node<?> subMutant = lazyN2N.getMutableEquivalent(subNode);\r
75         \r
76         Assert.assertNotNull(subMutant.getParent());\r
77         Assert.assertEquals(subMutant.getParent(), lazyN2N.getMutableRoot());\r
78     }\r
79 \r
80 }\r