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 static org.junit.Assert.assertNull;
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorRef;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeConnectorUpdatedBuilder;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeId;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.NodeUpdatedBuilder;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnector;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.node.NodeConnectorBuilder;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumberValuesV10;
24 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
26 import java.math.BigInteger;
27 import java.util.List;
32 public class InventoryDataServiceUtilTest {
35 private static final long PORT_NO = (long) PortNumberValuesV10.CONTROLLER.getIntValue();
36 private static final BigInteger PATH_ID = BigInteger.TEN;
39 public void setupEnvironment() {
40 OpenflowPortsUtil.init();
44 * Test method for {@link InventoryDataServiceUtil#checkForNodes()}.
46 public void testCheckForNodes() {
47 Nodes nodes = InventoryDataServiceUtil.checkForNodes();
52 * Test method for {@link InventoryDataServiceUtil#readAllNodes()}.
54 public void testReadAllNodes() {
55 List<org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node> nodes = InventoryDataServiceUtil.readAllNodes();
60 * Test method for {@link InventoryDataServiceUtil#nodeUpdatedBuilderFromDataPathId(BigInteger datapathId)}.
63 public void testNodeUpdatedBuilderFromDataPathId() {
64 NodeUpdatedBuilder nodeUpdatedBuilder = InventoryDataServiceUtil.nodeUpdatedBuilderFromDataPathId(PATH_ID);
65 assertNotNull(nodeUpdatedBuilder);
69 * Test method for {@link InventoryDataServiceUtil#nodeConnectorBuilderFromDatapathIdPortNo(BigInteger datapathId,
70 * Long portNo, OpenflowVersion ofVersion)}.
73 public void testNodeConnectorBuilderFromDatapathIdPortNo() {
74 NodeConnectorBuilder nodeConnectorBuilder = InventoryDataServiceUtil.nodeConnectorBuilderFromDatapathIdPortNo(PATH_ID,
75 PORT_NO, OpenflowVersion.OF10);
76 assertNotNull(nodeConnectorBuilder);
78 nodeConnectorBuilder = InventoryDataServiceUtil.nodeConnectorBuilderFromDatapathIdPortNo(PATH_ID,
79 PORT_NO, OpenflowVersion.OF13);
80 assertNotNull(nodeConnectorBuilder);
82 nodeConnectorBuilder = InventoryDataServiceUtil.nodeConnectorBuilderFromDatapathIdPortNo(PATH_ID,
83 PORT_NO, OpenflowVersion.UNSUPPORTED);
84 assertNotNull(nodeConnectorBuilder);
88 * Test method for {@link InventoryDataServiceUtil#nodeConnectorUpdatedBuilderFromDatapathIdPortNo(BigInteger datapathId,
89 * Long portNo, OpenflowVersion ofVersion)}
92 public void testNodeConnectorUpdatedBuilderFromDatapathIdPortNo() {
93 NodeConnectorUpdatedBuilder nodeConnectorUpdatedBuilder = InventoryDataServiceUtil.nodeConnectorUpdatedBuilderFromDatapathIdPortNo(PATH_ID,
94 PORT_NO, OpenflowVersion.OF10);
95 assertNotNull(nodeConnectorUpdatedBuilder);
97 nodeConnectorUpdatedBuilder = InventoryDataServiceUtil.nodeConnectorUpdatedBuilderFromDatapathIdPortNo(PATH_ID,
98 PORT_NO, OpenflowVersion.OF13);
99 assertNotNull(nodeConnectorUpdatedBuilder);
101 nodeConnectorUpdatedBuilder = InventoryDataServiceUtil.nodeConnectorUpdatedBuilderFromDatapathIdPortNo(PATH_ID,
102 PORT_NO, OpenflowVersion.UNSUPPORTED);
103 assertNotNull(nodeConnectorUpdatedBuilder);
107 * Test method for {@link InventoryDataServiceUtil#nodeConnectorInstanceIdentifierFromDatapathIdPortno(BigInteger datapathId, Long portNo, OpenflowVersion ofVersion)}
110 public void testNodeConnectorInstanceIdentifierFromDatapathIdPortno() {
111 InstanceIdentifier<NodeConnector> nodeConnectorInstanceIdentifier = InventoryDataServiceUtil.nodeConnectorInstanceIdentifierFromDatapathIdPortno(BigInteger.ONE,
112 PORT_NO, OpenflowVersion.OF10);
113 assertNotNull(nodeConnectorInstanceIdentifier);
117 * Test method for {@link InventoryDataServiceUtil#nodeConnectorRefFromDatapathIdPortno(BigInteger datapathId, Long portNo, OpenflowVersion ofVersion)}
120 public void testNodeConnectorRefFromDatapathIdPortno() {
121 NodeConnectorRef nodeConnectorRef = InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(PATH_ID,
123 OpenflowVersion.OF10);
124 assertNotNull(nodeConnectorRef);
126 nodeConnectorRef = InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(PATH_ID,
128 OpenflowVersion.OF13);
129 assertNotNull(nodeConnectorRef);
133 * Test method for {@link InventoryDataServiceUtil#dataPathIdFromNodeId(NodeId)}.
136 public void testDataPathIdFromNodeId() {
137 String string = "openflow:";
138 NodeId[] nodeIds = new NodeId[]{
139 // 0x00000000 000004d2
140 new NodeId(string + "1234"),
141 // 0x8db2089e 01391a86
142 new NodeId(string + "10210232779920710278"),
143 // 0xffffffff ffffffff
144 new NodeId(string + "18446744073709551615"),
147 long[] expectedDPIDs = new long[]{
149 -8236511293788841338L,
153 for (int i = 0; i < nodeIds.length; i++) {
154 BigInteger datapathId = InventoryDataServiceUtil.dataPathIdFromNodeId(nodeIds[i]);
155 Assert.assertEquals(expectedDPIDs[i], datapathId.longValue());
160 * Test method for {@link InventoryDataServiceUtil#bigIntegerToPaddedHex(BigInteger)}.
163 public void testLongToPaddedHex() {
164 BigInteger[] dpids = new BigInteger[]{
165 // 0x00000000 000004d2
166 new BigInteger("1234"),
167 // 0x8db2089e 01391a86
168 new BigInteger("10210232779920710278"),
169 // 0xffffffff ffffffff
170 new BigInteger("18446744073709551615"),
173 String[] expectedPaddedHexes = new String[]{
179 for (int i = 0; i < dpids.length; i++) {
180 String datapathIdHex = InventoryDataServiceUtil.bigIntegerToPaddedHex(dpids[i]);
181 Assert.assertEquals(expectedPaddedHexes[i], datapathIdHex);