1 package org.opendaylight.controller.topology.northbound;
3 import static org.junit.Assert.*;
5 import java.util.ArrayList;
6 import java.util.HashSet;
10 import org.junit.Test;
11 import org.opendaylight.controller.sal.core.Bandwidth;
12 import org.opendaylight.controller.sal.core.ConstructionException;
13 import org.opendaylight.controller.sal.core.Edge;
14 import org.opendaylight.controller.sal.core.Latency;
15 import org.opendaylight.controller.sal.core.Node;
16 import org.opendaylight.controller.sal.core.NodeConnector;
17 import org.opendaylight.controller.sal.core.Property;
18 import org.opendaylight.controller.sal.core.State;
19 import org.opendaylight.controller.sal.utils.NodeConnectorCreator;
20 import org.opendaylight.controller.sal.utils.NodeCreator;
21 import org.slf4j.Logger;
22 import org.slf4j.LoggerFactory;
24 public class TopologyTest {
25 protected static final Logger logger = LoggerFactory
26 .getLogger(TopologyTest.class);
29 public void edgePropertiesTopologyTest() {
31 //Create 3 nodes and edges between them
32 Node n1 = NodeCreator.createOFNode((long)1);
33 Node n2 = NodeCreator.createOFNode((long)2);
34 Node n3 = NodeCreator.createOFNode((long)3);
36 NodeConnector nc11 = NodeConnectorCreator.createOFNodeConnector((short) 1, n1);
37 NodeConnector nc12 = NodeConnectorCreator.createOFNodeConnector((short) 2, n1);
38 NodeConnector nc21 = NodeConnectorCreator.createOFNodeConnector((short) 1, n2);
39 NodeConnector nc22 = NodeConnectorCreator.createOFNodeConnector((short) 2, n2);
40 NodeConnector nc23 = NodeConnectorCreator.createOFNodeConnector((short) 2, n3);
41 NodeConnector nc32 = NodeConnectorCreator.createOFNodeConnector((short) 3, n2);
42 NodeConnector nc33 = NodeConnectorCreator.createOFNodeConnector((short) 3, n3);
48 e12 = new Edge(nc12, nc21);
49 } catch (ConstructionException e) {
50 fail("Failed to construct edge " + e.getMessage());
53 e23 = new Edge(nc23, nc32);
54 } catch (ConstructionException e) {
55 fail("Failed to construct edge " + e.getMessage());
58 Set<Property> props = new HashSet<Property>();
59 State state = new State(State.EDGE_UP);
60 Bandwidth bw = new Bandwidth(Bandwidth.BW100Gbps);
61 Latency l = new Latency(Latency.LATENCY100ns);
66 //Check get methods for edge and properties
67 EdgeProperties edgeProp = new EdgeProperties(e12, props);
69 Edge getEdge = edgeProp.getEdge();
70 assertEquals(e12, getEdge);
71 assertEquals(nc12, getEdge.getTailNodeConnector());
72 assertEquals(n1, getEdge.getTailNodeConnector().getNode());
73 assertEquals((long)1, getEdge.getTailNodeConnector().getNode().getID());
74 assertEquals(nc21, getEdge.getHeadNodeConnector());
75 assertEquals(n2, getEdge.getHeadNodeConnector().getNode());
76 assertEquals((long)2, getEdge.getHeadNodeConnector().getNode().getID());
78 Set<Property> getProp = edgeProp.getProperties();
79 assertEquals(props, getProp);
80 assertEquals(props.size(), getProp.size());
83 edgeProp.setEdge(e23);
84 getEdge = edgeProp.getEdge();
85 assertEquals(e23, getEdge);
86 assertEquals(nc23, getEdge.getTailNodeConnector());
87 assertEquals(nc32, getEdge.getHeadNodeConnector());
90 edgeProp.setProperties(props);
91 assertEquals(props, getProp);
92 assertEquals(props.size(), getProp.size());
95 //Create and check topology
96 List<EdgeProperties> edgePropList= new ArrayList<EdgeProperties>();
97 edgePropList.add(edgeProp);
99 Topology t = new Topology(edgePropList);
101 List<EdgeProperties> getEdgePropList = t.getEdgeProperties();
102 assertEquals(edgePropList, getEdgePropList);
103 assertEquals(1, getEdgePropList.size());
105 EdgeProperties edgeProp2 = new EdgeProperties(e23, props);
106 edgePropList.add(edgeProp2);
107 t.setEdgeProperties(edgePropList);
109 getEdgePropList = t.getEdgeProperties();
110 assertEquals(edgePropList, getEdgePropList);
111 assertEquals(2, getEdgePropList.size());