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.GlobalConstants;
28 import org.opendaylight.controller.sal.utils.NodeConnectorCreator;
29 import org.opendaylight.controller.sal.utils.NodeCreator;
30 import org.opendaylight.controller.sal.utils.ServiceHelper;
32 public class SwitchTest {
35 public void testSwitchCreation() {
37 Node node = NodeCreator.createOFNode(((long) 10));
38 Node node2 = NodeCreator.createOFNode(((long) 11));
39 NodeConnector nc0 = NodeConnectorCreator.createOFNodeConnector(
41 NodeConnector nc1 = NodeConnectorCreator.createOFNodeConnector(
43 NodeConnector nc2 = NodeConnectorCreator.createOFNodeConnector(
45 NodeConnector nc3 = NodeConnectorCreator.createOFNodeConnector(
47 NodeConnector nc4 = NodeConnectorCreator.createOFNodeConnector(
49 NodeConnector nc5 = NodeConnectorCreator.createOFNodeConnector(
52 Set<NodeConnector> ncSet = new HashSet<NodeConnector>();
53 ArrayList<NodeConnector> portList = new ArrayList<NodeConnector>();
55 Switch sw = new Switch(node);
56 Switch sw2 = new Switch(node);
57 Assert.assertTrue(sw.equals(sw2));
59 Assert.assertTrue(sw2.getNode().equals(node2));
60 Assert.assertFalse(sw.equals(sw2));
65 sw.addNodeConnector(nc3);
67 sw.addNodeConnector(nc3);
68 } catch (Exception e) {
69 fail("Attempted to add duplicate NodeConnector to set");
75 sw.setNodeConnectors(ncSet);
76 sw.addSpanPorts(portList);
78 sw.setDataLayerAddress(null);
79 Assert.assertNull(sw.getDataLayerAddress());
80 byte[] dlAddress = { (byte) 0x01, (byte) 0x02, (byte) 0x03,
81 (byte) 0x04, (byte) 0x05, (byte) 0x06 };
82 sw.setDataLayerAddress(dlAddress);
84 Node resultNode = sw.getNode();
85 Set<NodeConnector> resultncSet = sw.getNodeConnectors();
86 byte[] resultdlAddress = sw.getDataLayerAddress();
87 ArrayList<NodeConnector> resultSpanPort = (ArrayList<NodeConnector>) sw
90 Assert.assertEquals(node, resultNode);
91 for (int i = 0; i < dlAddress.length; i++)
92 Assert.assertEquals(dlAddress[i], resultdlAddress[i]);
94 Assert.assertTrue(ncSet.equals(resultncSet));
96 for (int i = 0; i < portList.size(); i++)
97 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()));