2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.openflowplugin.openflow.md.util;
10 import static org.junit.Assert.assertNotNull;
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Test;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdatedBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdatedBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumberValuesV10;
22 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
24 import java.math.BigInteger;
25 import java.util.List;
30 public class InventoryDataServiceUtilTest {
33 private static final long PORT_NO = (long) PortNumberValuesV10.CONTROLLER.getIntValue();
34 private static final BigInteger PATH_ID = BigInteger.TEN;
37 public void setupEnvironment() {
38 OpenflowPortsUtil.init();
42 * Test method for {@link InventoryDataServiceUtil#checkForNodes()}.
44 public void testCheckForNodes() {
45 Nodes nodes = InventoryDataServiceUtil.checkForNodes();
50 * Test method for {@link InventoryDataServiceUtil#readAllNodes()}.
52 public void testReadAllNodes() {
53 List<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node> nodes = InventoryDataServiceUtil.readAllNodes();
58 * Test method for {@link InventoryDataServiceUtil#nodeUpdatedBuilderFromDataPathId(BigInteger datapathId)}.
60 public void testNodeUpdatedBuilderFromDataPathId() {
61 NodeUpdatedBuilder nodeUpdatedBuilder = InventoryDataServiceUtil.nodeUpdatedBuilderFromDataPathId(PATH_ID);
62 assertNotNull(nodeUpdatedBuilder);
66 * Test method for {@link InventoryDataServiceUtil#nodeConnectorBuilderFromDatapathIdPortNo(BigInteger datapathId,
67 * Long portNo, OpenflowVersion ofVersion)}.
69 public void testNodeConnectorBuilderFromDatapathIdPortNo() {
70 NodeConnectorBuilder nodeConnectorBuilder = InventoryDataServiceUtil.nodeConnectorBuilderFromDatapathIdPortNo(PATH_ID,
71 PORT_NO, OpenflowVersion.OF10);
72 assertNotNull(nodeConnectorBuilder);
74 nodeConnectorBuilder = InventoryDataServiceUtil.nodeConnectorBuilderFromDatapathIdPortNo(PATH_ID,
75 PORT_NO, OpenflowVersion.OF13);
76 assertNotNull(nodeConnectorBuilder);
78 nodeConnectorBuilder = InventoryDataServiceUtil.nodeConnectorBuilderFromDatapathIdPortNo(PATH_ID,
79 PORT_NO, OpenflowVersion.UNSUPPORTED);
80 assertNotNull(nodeConnectorBuilder);
84 * Test method for {@link InventoryDataServiceUtil#nodeConnectorUpdatedBuilderFromDatapathIdPortNo(BigInteger datapathId,
85 * Long portNo, OpenflowVersion ofVersion)}
87 public void testNodeConnectorUpdatedBuilderFromDatapathIdPortNo() {
88 NodeConnectorUpdatedBuilder nodeConnectorUpdatedBuilder = InventoryDataServiceUtil.nodeConnectorUpdatedBuilderFromDatapathIdPortNo(PATH_ID,
89 PORT_NO, OpenflowVersion.OF10);
90 assertNotNull(nodeConnectorUpdatedBuilder);
92 nodeConnectorUpdatedBuilder = InventoryDataServiceUtil.nodeConnectorUpdatedBuilderFromDatapathIdPortNo(PATH_ID,
93 PORT_NO, OpenflowVersion.OF13);
94 assertNotNull(nodeConnectorUpdatedBuilder);
96 nodeConnectorUpdatedBuilder = InventoryDataServiceUtil.nodeConnectorUpdatedBuilderFromDatapathIdPortNo(PATH_ID,
97 PORT_NO, OpenflowVersion.UNSUPPORTED);
98 assertNotNull(nodeConnectorUpdatedBuilder);
102 * Test method for {@link InventoryDataServiceUtil#nodeConnectorInstanceIdentifierFromDatapathIdPortno(BigInteger datapathId, Long portNo, OpenflowVersion ofVersion)}
105 public void testNodeConnectorInstanceIdentifierFromDatapathIdPortno() {
106 InstanceIdentifier<NodeConnector> nodeConnectorInstanceIdentifier = InventoryDataServiceUtil.nodeConnectorInstanceIdentifierFromDatapathIdPortno(BigInteger.ONE,
107 PORT_NO, OpenflowVersion.OF10);
108 assertNotNull(nodeConnectorInstanceIdentifier);
112 * Test method for {@link InventoryDataServiceUtil#nodeConnectorRefFromDatapathIdPortno(BigInteger datapathId, Long portNo, OpenflowVersion ofVersion)}
115 public void testNodeConnectorRefFromDatapathIdPortno() {
116 NodeConnectorRef nodeConnectorRef = InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(PATH_ID,
118 OpenflowVersion.OF10);
119 assertNotNull(nodeConnectorRef);
121 nodeConnectorRef = InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(PATH_ID,
123 OpenflowVersion.OF13);
124 assertNotNull(nodeConnectorRef);
128 * Test method for {@link InventoryDataServiceUtil#dataPathIdFromNodeId(NodeId)}.
131 public void testDataPathIdFromNodeId() {
132 String string = "openflow:";
133 NodeId[] nodeIds = new NodeId[]{
134 // 0x00000000 000004d2
135 new NodeId(string + "1234"),
136 // 0x8db2089e 01391a86
137 new NodeId(string + "10210232779920710278"),
138 // 0xffffffff ffffffff
139 new NodeId(string + "18446744073709551615"),
142 long[] expectedDPIDs = new long[]{
144 -8236511293788841338L,
148 for (int i = 0; i < nodeIds.length; i++) {
149 BigInteger datapathId = InventoryDataServiceUtil.dataPathIdFromNodeId(nodeIds[i]);
150 Assert.assertEquals(expectedDPIDs[i], datapathId.longValue());
155 * Test method for {@link InventoryDataServiceUtil#bigIntegerToPaddedHex(BigInteger)}.
158 public void testLongToPaddedHex() {
159 BigInteger[] dpids = new BigInteger[]{
160 // 0x00000000 000004d2
161 new BigInteger("1234"),
162 // 0x8db2089e 01391a86
163 new BigInteger("10210232779920710278"),
164 // 0xffffffff ffffffff
165 new BigInteger("18446744073709551615"),
168 String[] expectedPaddedHexes = new String[]{
174 for (int i = 0; i < dpids.length; i++) {
175 String datapathIdHex = InventoryDataServiceUtil.bigIntegerToPaddedHex(dpids[i]);
176 Assert.assertEquals(expectedPaddedHexes[i], datapathIdHex);