18b3195372ff2f6f42a97c277b6d507be4d4dc33
[controller.git] / opendaylight / switchmanager / api / src / test / java / org / opendaylight / controller / switchmanager / SwitchTest.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.controller.switchmanager;
10
11 import static org.junit.Assert.fail;
12
13 import java.util.ArrayList;
14 import java.util.HashSet;
15 import java.util.Set;
16
17 import org.junit.Assert;
18 import org.junit.Test;
19 import org.opendaylight.controller.sal.core.Node;
20 import org.opendaylight.controller.sal.core.NodeConnector;
21 import org.opendaylight.controller.sal.utils.NodeConnectorCreator;
22 import org.opendaylight.controller.sal.utils.NodeCreator;
23
24 public class SwitchTest {
25
26     @Test
27     public void testSwitchCreation() {
28
29         Node node = NodeCreator.createOFNode(((long) 10));
30         Node node2 = NodeCreator.createOFNode(((long) 11));
31         NodeConnector nc0 = NodeConnectorCreator.createOFNodeConnector(
32                 (short) 20, node);
33         NodeConnector nc1 = NodeConnectorCreator.createOFNodeConnector(
34                 (short) 30, node);
35         NodeConnector nc2 = NodeConnectorCreator.createOFNodeConnector(
36                 (short) 40, node);
37         NodeConnector nc3 = NodeConnectorCreator.createOFNodeConnector(
38                 (short) 50, node);
39         NodeConnector nc4 = NodeConnectorCreator.createOFNodeConnector(
40                 (short) 60, node);
41         NodeConnector nc5 = NodeConnectorCreator.createOFNodeConnector(
42                 (short) 70, node);
43
44         Set<NodeConnector> ncSet = new HashSet<NodeConnector>();
45         ArrayList<NodeConnector> portList = new ArrayList<NodeConnector>();
46
47         Switch sw = new Switch(node);
48         Switch sw2 = new Switch(node);
49         Assert.assertTrue(sw.equals(sw2));
50         sw2.setNode(node2);
51         Assert.assertTrue(sw2.getNode().equals(node2));
52         Assert.assertFalse(sw.equals(sw2));
53
54         ncSet.add(nc0);
55         ncSet.add(nc1);
56         ncSet.add(nc2);
57         sw.addNodeConnector(nc3);
58         try {
59             sw.addNodeConnector(nc3);
60         } catch (Exception e) {
61             fail("Attempted to add duplicate NodeConnector to set");
62         }
63
64         portList.add(nc4);
65         portList.add(nc5);
66
67         sw.setNodeConnectors(ncSet);
68         sw.addSpanPorts(portList);
69
70         sw.setDataLayerAddress(null);
71         Assert.assertNull(sw.getDataLayerAddress());
72         byte[] dlAddress = { (byte) 0x01, (byte) 0x02, (byte) 0x03,
73                 (byte) 0x04, (byte) 0x05, (byte) 0x06 };
74         sw.setDataLayerAddress(dlAddress);
75
76         Node resultNode = sw.getNode();
77         Set<NodeConnector> resultncSet = sw.getNodeConnectors();
78         byte[] resultdlAddress = sw.getDataLayerAddress();
79         ArrayList<NodeConnector> resultSpanPort = (ArrayList<NodeConnector>) sw
80                 .getSpanPorts();
81
82         Assert.assertEquals(node, resultNode);
83         for (int i = 0; i < dlAddress.length; i++)
84             Assert.assertEquals(dlAddress[i], resultdlAddress[i]);
85
86         Assert.assertTrue(ncSet.equals(resultncSet));
87
88         for (int i = 0; i < portList.size(); i++)
89             Assert.assertEquals(portList.get(i), resultSpanPort.get(i));
90     }
91
92     @Test
93     public void testSwitchAddRemovePort() {
94         Node node = NodeCreator.createOFNode(((long) 10));
95
96         NodeConnector nc0 = NodeConnectorCreator.createOFNodeConnector(
97                 (short) 20, node);
98         NodeConnector nc1 = NodeConnectorCreator.createOFNodeConnector(
99                 (short) 30, node);
100         NodeConnector nc4 = NodeConnectorCreator.createOFNodeConnector(
101                 (short) 60, node);
102         NodeConnector nc5 = NodeConnectorCreator.createOFNodeConnector(
103                 (short) 70, node);
104         ArrayList<NodeConnector> portList = new ArrayList<NodeConnector>();
105
106         portList.add(nc4);
107         portList.add(nc5);
108
109         Set<NodeConnector> ncSet = new HashSet<NodeConnector>();
110         ncSet.add(nc0);
111         ncSet.add(nc1);
112
113         Switch sw = new Switch(node);
114         sw.setNodeConnectors(ncSet);
115         sw.removeNodeConnector(nc0);
116         Assert.assertFalse(ncSet.contains(nc0));
117
118         sw.removeSpanPorts(portList);
119         Assert.assertTrue(sw.getSpanPorts().isEmpty());
120
121     }
122
123     @Test
124     public void testSwitchConfig(){
125         SwitchConfig sc = new SwitchConfig(null, null, null, null);
126         SwitchConfig sc2 = new SwitchConfig(null, null, null, null);
127         Assert.assertTrue(sc.equals(sc2));
128
129         Assert.assertNull(sc.getMode());
130         Assert.assertNull(sc.getNodeId());
131         Assert.assertNull(sc.getTier());
132         Assert.assertNull(sc.getNodeDescription());
133
134         SwitchConfig sc3 = new SwitchConfig("123", "name", "tier", "mode");
135         SwitchConfig sc4 = new SwitchConfig("123", "name", "tier", "mode");
136         Assert.assertFalse(sc.equals(sc3));
137         Assert.assertTrue(sc3.equals(sc4));
138
139         Assert.assertTrue(sc3.getNodeId().equals("123"));
140         Assert.assertTrue(sc3.getNodeDescription().equals("name"));
141         Assert.assertTrue(sc3.getTier().equals("tier"));
142         Assert.assertTrue(sc3.getMode().equals("mode"));
143     }
144
145 }