| /* |
| * Copyright 2016-present Open Networking Foundation |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package org.onosproject.yms.app.ypm; |
| |
| import org.junit.Test; |
| import org.onosproject.yangutils.datamodel.YangSchemaNodeIdentifier; |
| import org.onosproject.yms.ypm.DefaultYpmNode; |
| import org.onosproject.yms.ypm.YpmContext; |
| |
| import static org.hamcrest.MatcherAssert.assertThat; |
| import static org.hamcrest.Matchers.is; |
| import static org.hamcrest.Matchers.notNullValue; |
| import static org.hamcrest.Matchers.nullValue; |
| |
| /** |
| * Unit tests for YpmManager class. |
| */ |
| public class YpmManagerTest { |
| private final String logicalName = "logicalYpmNode"; |
| private final String moduleName1 = "portPairModule1"; |
| private final String moduleName2 = "portPairModule2"; |
| private final String xNodeName = "x"; |
| private final String yNodeName = "y"; |
| private final String zNodeName = "z"; |
| private final String x1NodeName = "x1"; |
| private final String x2NodeName = "x2"; |
| private final String y1NodeName = "y1"; |
| private final String y2NodeName = "y2"; |
| private final String y11NodeName = "y11"; |
| private final String z1NodeName = "z1"; |
| private final String z2NodeName = "z2"; |
| private final String z3NodeName = "z3"; |
| |
| /** |
| * Creates module1 ydt tree. |
| */ |
| public YdtNodeAdapter createModule1Tree() throws CloneNotSupportedException { |
| YangSchemaNodeIdentifier tmpNodeIdentifier; |
| YdtNodeAdapter rootNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(logicalName); |
| rootNode.setNodeIdentifier(tmpNodeIdentifier); |
| |
| // Create module node with moduleName1 |
| YdtNodeAdapter moduleNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(moduleName1); |
| moduleNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.setParent(rootNode); |
| rootNode.addChild(moduleNode); // child to logical node |
| YdtNodeAdapter xNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(xNodeName); |
| xNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter yNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(yNodeName); |
| yNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter zNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(zNodeName); |
| zNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.addChild(xNode); // child to module node |
| xNode.addSibling(yNode); |
| yNode.addSibling(zNode); |
| YdtNodeAdapter x1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(x1NodeName); |
| x1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter x2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(x2NodeName); |
| x2Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter y1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y1NodeName); |
| y1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter y2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y2NodeName); |
| y2Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter z1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(z1NodeName); |
| z1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter z2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(z2NodeName); |
| z2Node.setNodeIdentifier(tmpNodeIdentifier); |
| xNode.addChild(x1Node); |
| x1Node.addSibling(x2Node); |
| yNode.addChild(y1Node); |
| y1Node.addSibling(y2Node); |
| zNode.addChild(z1Node); |
| z1Node.addSibling(z2Node); |
| |
| return rootNode; |
| } |
| |
| /** |
| * Checks the protocol data added in YpmManger when only single module exists. |
| */ |
| @Test |
| public void retrieveAndCheckProtocolDataWhenSingleModule() throws CloneNotSupportedException { |
| YdtNodeAdapter rootNode = createModule1Tree(); |
| |
| YpmManager ypmManager = new YpmManager(); |
| Object metaData = 10; |
| ypmManager.setProtocolData(rootNode, metaData); |
| YpmContext ypmContext = ypmManager.getProtocolData(rootNode); |
| DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext; |
| assertThat(rootYpmNode.getName(), is(logicalName)); |
| DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(moduleName1)); |
| currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(xNodeName)); // x node |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling |
| |
| // Check x node leaf's x1 and x2 |
| DefaultYpmNode moduleYpmNode = currYpmNode.getParent(); |
| assertThat(moduleYpmNode.getName(), is(moduleName1)); |
| DefaultYpmNode xYpmNode = (DefaultYpmNode) moduleYpmNode.getFirstChild(); |
| assertThat(xYpmNode.getName(), is(xNodeName)); |
| assertThat(xYpmNode.getMetaData(), is(metaData)); |
| // Check x1 node |
| currYpmNode = (DefaultYpmNode) xYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(x1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| // Check x2 node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(x2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| |
| // Check y node leaf's y1 and y2 |
| DefaultYpmNode yYpmNode = xYpmNode.getNextSibling(); |
| assertThat(yYpmNode.getName(), is(yNodeName)); |
| assertThat(yYpmNode.getMetaData(), is(metaData)); |
| // Check y1 node |
| currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(y1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| // Check y2 node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(y2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| |
| // Check z node leaf's z1 and z2 |
| DefaultYpmNode zYpmNode = yYpmNode.getNextSibling(); |
| assertThat(zYpmNode.getName(), is(zNodeName)); |
| assertThat(zYpmNode.getMetaData(), is(metaData)); |
| // Check z1 node |
| currYpmNode = (DefaultYpmNode) zYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(z1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| // Check z2 node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(z2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| } |
| |
| /** |
| * Creates module2 ydt tree. Module1 and Module2 trees are point to same logical root. |
| */ |
| public YdtNodeAdapter createModule2Tree() throws CloneNotSupportedException { |
| YangSchemaNodeIdentifier tmpNodeIdentifier; |
| YdtNodeAdapter rootNode = createModule1Tree(); |
| YdtNodeAdapter moduleNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(moduleName2); |
| moduleNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.setParent(rootNode); |
| rootNode.addChild(moduleNode); // child to logical node |
| YdtNodeAdapter xNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(xNodeName); |
| xNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter yNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(yNodeName); |
| yNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter zNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(zNodeName); |
| zNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.addChild(xNode); // child to module node |
| xNode.addSibling(yNode); |
| yNode.addSibling(zNode); |
| YdtNodeAdapter x1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(x1NodeName); |
| x1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter x2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(x2NodeName); |
| x2Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter y1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y1NodeName); |
| y1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter y2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y2NodeName); |
| y2Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter z1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(z1NodeName); |
| z1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter z2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(z2NodeName); |
| z2Node.setNodeIdentifier(tmpNodeIdentifier); |
| xNode.addChild(x1Node); |
| x1Node.addSibling(x2Node); |
| yNode.addChild(y1Node); |
| y1Node.addSibling(y2Node); |
| zNode.addChild(z1Node); |
| z1Node.addSibling(z2Node); |
| |
| return rootNode; |
| } |
| |
| /** |
| * Checks the protocol data added in YpmManger when multiple modules exists. |
| */ |
| @Test |
| public void retrieveAndCheckProtocolDataWhenMultipleModule() throws CloneNotSupportedException { |
| YdtNodeAdapter rootNode = createModule2Tree(); |
| |
| YpmManager ypmManager = new YpmManager(); |
| Object metaData = 10; |
| ypmManager.setProtocolData(rootNode, metaData); |
| YpmContext ypmContext = ypmManager.getProtocolData(rootNode); |
| DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext; |
| assertThat(rootYpmNode.getName(), is(logicalName)); |
| DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild(); |
| currYpmNode = currYpmNode.getNextSibling(); // jump to next module (module2) |
| assertThat(currYpmNode.getName(), is(moduleName2)); |
| currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(xNodeName)); // x node |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // y or z node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling |
| |
| // Check x node leaf's x1 and x2 |
| DefaultYpmNode moduleYpmNode = currYpmNode.getParent(); |
| assertThat(moduleYpmNode.getName(), is(moduleName2)); |
| DefaultYpmNode xYpmNode = (DefaultYpmNode) moduleYpmNode.getFirstChild(); |
| assertThat(xYpmNode.getName(), is(xNodeName)); |
| assertThat(xYpmNode.getMetaData(), is(metaData)); |
| // Check x1 node |
| currYpmNode = (DefaultYpmNode) xYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(x1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| // Check x2 node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(x2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| |
| // Check y node leaf's y1 and y2 |
| DefaultYpmNode yYpmNode = xYpmNode.getNextSibling(); |
| assertThat(yYpmNode.getName(), is(yNodeName)); |
| assertThat(yYpmNode.getMetaData(), is(metaData)); |
| // Check y1 node |
| currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(y1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| // Check y2 node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(y2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| |
| // Check z node leaf's z1 and z2 |
| DefaultYpmNode zYpmNode = yYpmNode.getNextSibling(); |
| assertThat(zYpmNode.getName(), is(zNodeName)); |
| assertThat(zYpmNode.getMetaData(), is(metaData)); |
| // Check z1 node |
| currYpmNode = (DefaultYpmNode) zYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(z1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| // Check z2 node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(z2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| } |
| |
| /** |
| * Checks the protocol data added in YpmManger, but tests only part of module1 tree. |
| */ |
| @Test |
| public void retrieveAndCheckProtocolDataChosenFromPartOfModule1Tree() throws CloneNotSupportedException { |
| YangSchemaNodeIdentifier tmpNodeIdentifier; |
| YdtNodeAdapter rootNode = createModule2Tree(); |
| |
| // Sets the tree |
| YpmManager ypmManager = new YpmManager(); |
| Object metaData = 10; |
| ypmManager.setProtocolData(rootNode, metaData); |
| |
| // Create new ydt tree part of module1 tree |
| YdtNodeAdapter rootNewYdtNode = new YdtNodeAdapter(); |
| // Create module node with moduleName1 |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(logicalName); |
| rootNewYdtNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter moduleNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(moduleName1); |
| moduleNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.setParent(rootNewYdtNode); |
| rootNewYdtNode.addChild(moduleNode); // child to logical node |
| YdtNodeAdapter yNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(yNodeName); |
| yNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter zNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(zNodeName); |
| zNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.addChild(yNode); // child to module node |
| yNode.addSibling(zNode); |
| YdtNodeAdapter y1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y1NodeName); |
| y1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter y2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y2NodeName); |
| y2Node.setNodeIdentifier(tmpNodeIdentifier); |
| yNode.addChild(y1Node); |
| y1Node.addSibling(y2Node); |
| |
| // Again sets the protocol data |
| metaData = 20; |
| ypmManager.setProtocolData(rootNewYdtNode, metaData); |
| |
| // Retrieve protocol data and check the contents |
| YpmContext ypmContext = ypmManager.getProtocolData(rootNewYdtNode); |
| DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext; |
| assertThat(rootYpmNode.getName(), is(logicalName)); |
| DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(moduleName1)); |
| // Check y and z node |
| currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild(); |
| DefaultYpmNode yYpmNode = currYpmNode; |
| assertThat(currYpmNode.getName(), is(yNodeName)); // x node |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // z node |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(zNodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling |
| // Check y1 and y2 node |
| currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(y1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // y2 should exists |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(y2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); |
| } |
| |
| /** |
| * Checks the protocol data added in YpmManger, but tests part of module1 tree with little bit extended tree. |
| */ |
| @Test |
| public void retrieveAndCheckProtocolDataChosenFromPartOfModule1TreeWithExtended() |
| throws CloneNotSupportedException { |
| YangSchemaNodeIdentifier tmpNodeIdentifier; |
| YdtNodeAdapter rootNode = createModule2Tree(); |
| |
| // Sets the tree |
| YpmManager ypmManager = new YpmManager(); |
| Object metaData = 10; |
| ypmManager.setProtocolData(rootNode, metaData); |
| |
| // Create new ydt tree part of module1 tree |
| YdtNodeAdapter rootNewYdtNode = new YdtNodeAdapter(); |
| // Create module node with moduleName1 |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(logicalName); |
| rootNewYdtNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter moduleNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(moduleName1); |
| moduleNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.setParent(rootNewYdtNode); |
| rootNewYdtNode.addChild(moduleNode); // child to logical node |
| YdtNodeAdapter yNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(yNodeName); |
| yNode.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter zNode = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(zNodeName); |
| zNode.setNodeIdentifier(tmpNodeIdentifier); |
| moduleNode.addChild(yNode); // child to module node |
| yNode.addSibling(zNode); |
| YdtNodeAdapter y1Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y1NodeName); |
| y1Node.setNodeIdentifier(tmpNodeIdentifier); |
| YdtNodeAdapter y2Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y2NodeName); |
| y2Node.setNodeIdentifier(tmpNodeIdentifier); |
| yNode.addChild(y1Node); |
| y1Node.addSibling(y2Node); |
| YdtNodeAdapter y11Node = new YdtNodeAdapter(); |
| // Add new y11 node |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(y11NodeName); |
| y11Node.setNodeIdentifier(tmpNodeIdentifier); |
| y1Node.addChild(y11Node); |
| // Add new y3 node |
| YdtNodeAdapter z3Node = new YdtNodeAdapter(); |
| tmpNodeIdentifier = new YangSchemaNodeIdentifier(); |
| tmpNodeIdentifier.setName(z3NodeName); |
| z3Node.setNodeIdentifier(tmpNodeIdentifier); |
| zNode.addChild(z3Node); |
| |
| // Again sets the protocol data |
| metaData = 20; |
| ypmManager.setProtocolData(rootNewYdtNode, metaData); |
| |
| // Retrieve protocol data and check the contents |
| YpmContext ypmContext = ypmManager.getProtocolData(rootNewYdtNode); |
| DefaultYpmNode rootYpmNode = (DefaultYpmNode) ypmContext; |
| assertThat(rootYpmNode.getName(), is(logicalName)); |
| DefaultYpmNode currYpmNode = (DefaultYpmNode) rootYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(moduleName1)); |
| // Check y and z node |
| currYpmNode = (DefaultYpmNode) currYpmNode.getFirstChild(); |
| DefaultYpmNode yYpmNode = currYpmNode; |
| assertThat(currYpmNode.getName(), is(yNodeName)); // y node |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // z node |
| currYpmNode = currYpmNode.getNextSibling(); |
| DefaultYpmNode zYpmNode = currYpmNode; |
| assertThat(currYpmNode.getName(), is(zNodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); // no sibling |
| // Check y1 and y2 node |
| currYpmNode = (DefaultYpmNode) yYpmNode.getFirstChild(); |
| DefaultYpmNode y1YpmNode = currYpmNode; |
| assertThat(currYpmNode.getName(), is(y1NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), notNullValue()); // y2 should exists |
| currYpmNode = currYpmNode.getNextSibling(); |
| assertThat(currYpmNode.getName(), is(y2NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); |
| // Check new y11 node |
| currYpmNode = (DefaultYpmNode) y1YpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(y11NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); |
| assertThat(currYpmNode.getFirstChild(), nullValue()); |
| // Check new z3 node |
| currYpmNode = (DefaultYpmNode) zYpmNode.getFirstChild(); |
| assertThat(currYpmNode.getName(), is(z3NodeName)); |
| assertThat(currYpmNode.getMetaData(), is(metaData)); |
| assertThat(currYpmNode.getNextSibling(), nullValue()); |
| assertThat(currYpmNode.getFirstChild(), nullValue()); |
| } |
| } |