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
9 package org.opendaylight.controller.switchmanager;
11 import static org.junit.Assert.fail;
13 import java.util.ArrayList;
14 import java.util.HashMap;
15 import java.util.HashSet;
19 import org.junit.Assert;
20 import org.junit.Test;
21 import org.opendaylight.controller.sal.core.Description;
22 import org.opendaylight.controller.sal.core.ForwardingMode;
23 import org.opendaylight.controller.sal.core.Node;
24 import org.opendaylight.controller.sal.core.NodeConnector;
25 import org.opendaylight.controller.sal.core.Property;
26 import org.opendaylight.controller.sal.core.Tier;
27 import org.opendaylight.controller.sal.utils.NodeConnectorCreator;
28 import org.opendaylight.controller.sal.utils.NodeCreator;
30 public class SwitchTest {
33 public void testSwitchCreation() {
35 Node node = NodeCreator.createOFNode(((long) 10));
36 Node node2 = NodeCreator.createOFNode(((long) 11));
37 NodeConnector nc0 = NodeConnectorCreator.createOFNodeConnector(
39 NodeConnector nc1 = NodeConnectorCreator.createOFNodeConnector(
41 NodeConnector nc2 = NodeConnectorCreator.createOFNodeConnector(
43 NodeConnector nc3 = NodeConnectorCreator.createOFNodeConnector(
45 NodeConnector nc4 = NodeConnectorCreator.createOFNodeConnector(
47 NodeConnector nc5 = NodeConnectorCreator.createOFNodeConnector(
50 Set<NodeConnector> ncSet = new HashSet<NodeConnector>();
51 ArrayList<NodeConnector> portList = new ArrayList<NodeConnector>();
53 Switch sw = new Switch(node);
54 Switch sw2 = new Switch(node);
55 Assert.assertTrue(sw.equals(sw2));
57 Assert.assertTrue(sw2.getNode().equals(node2));
58 Assert.assertFalse(sw.equals(sw2));
63 sw.addNodeConnector(nc3);
65 sw.addNodeConnector(nc3);
66 } catch (Exception e) {
67 fail("Attempted to add duplicate NodeConnector to set");
73 sw.setNodeConnectors(ncSet);
74 sw.addSpanPorts(portList);
76 sw.setDataLayerAddress(null);
77 Assert.assertNull(sw.getDataLayerAddress());
78 byte[] dlAddress = { (byte) 0x01, (byte) 0x02, (byte) 0x03,
79 (byte) 0x04, (byte) 0x05, (byte) 0x06 };
80 sw.setDataLayerAddress(dlAddress);
82 Node resultNode = sw.getNode();
83 Set<NodeConnector> resultncSet = sw.getNodeConnectors();
84 byte[] resultdlAddress = sw.getDataLayerAddress();
85 ArrayList<NodeConnector> resultSpanPort = (ArrayList<NodeConnector>) sw
88 Assert.assertEquals(node, resultNode);
89 for (int i = 0; i < dlAddress.length; i++) {
90 Assert.assertEquals(dlAddress[i], resultdlAddress[i]);
93 Assert.assertTrue(ncSet.equals(resultncSet));
95 for (int i = 0; i < portList.size(); i++) {
96 Assert.assertEquals(portList.get(i), resultSpanPort.get(i));
101 public void testSwitchAddRemovePort() {
102 Node node = NodeCreator.createOFNode(((long) 10));
104 NodeConnector nc0 = NodeConnectorCreator.createOFNodeConnector(
106 NodeConnector nc1 = NodeConnectorCreator.createOFNodeConnector(
108 NodeConnector nc4 = NodeConnectorCreator.createOFNodeConnector(
110 NodeConnector nc5 = NodeConnectorCreator.createOFNodeConnector(
112 ArrayList<NodeConnector> portList = new ArrayList<NodeConnector>();
117 Set<NodeConnector> ncSet = new HashSet<NodeConnector>();
121 Switch sw = new Switch(node);
122 sw.setNodeConnectors(ncSet);
123 sw.removeNodeConnector(nc0);
124 Assert.assertFalse(ncSet.contains(nc0));
126 sw.removeSpanPorts(portList);
127 Assert.assertTrue(sw.getSpanPorts().isEmpty());
132 public void testSwitchConfig(){
133 Map<String, Property> prop = new HashMap<String, Property>();
134 Property desc = new Description("swicth1");
135 prop.put(desc.getName(), desc);
136 Property tier = new Tier(1);
137 prop.put(tier.getName(), tier);
138 SwitchConfig sc1 = new SwitchConfig("123", prop);
139 SwitchConfig sc2 = new SwitchConfig("123", prop);
140 Property mode = new ForwardingMode(1);
141 prop.put(mode.getName(), mode);
142 SwitchConfig sc3 = new SwitchConfig("123", prop);
143 Assert.assertTrue(sc1.equals(sc2));
144 Assert.assertEquals(tier, sc1.getProperty(Tier.TierPropName));
145 Assert.assertFalse(sc1.equals(sc3));
146 Assert.assertTrue(sc1.hashCode() == sc2.hashCode());
147 Assert.assertTrue(sc1.getNodeProperties().equals(sc2.getNodeProperties()));