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) {
54 e23 = new Edge(nc23, nc32);
55 } catch (ConstructionException e) {
60 Set<Property> props = new HashSet<Property>();
61 State state = new State(State.EDGE_UP);
62 Bandwidth bw = new Bandwidth(Bandwidth.BW100Gbps);
63 Latency l = new Latency(Latency.LATENCY100ns);
68 //Check get methods for edge and properties
69 EdgeProperties edgeProp = new EdgeProperties(e12, props);
71 Edge getEdge = edgeProp.getEdge();
72 assertEquals(e12, getEdge);
73 assertEquals(nc12, getEdge.getTailNodeConnector());
74 assertEquals(n1, getEdge.getTailNodeConnector().getNode());
75 assertEquals((long)1, getEdge.getTailNodeConnector().getNode().getID());
76 assertEquals(nc21, getEdge.getHeadNodeConnector());
77 assertEquals(n2, getEdge.getHeadNodeConnector().getNode());
78 assertEquals((long)2, getEdge.getHeadNodeConnector().getNode().getID());
80 Set<Property> getProp = edgeProp.getProperties();
81 assertEquals(props, getProp);
82 assertEquals(props.size(), getProp.size());
85 edgeProp.setEdge(e23);
86 getEdge = edgeProp.getEdge();
87 assertEquals(e23, getEdge);
88 assertEquals(nc23, getEdge.getTailNodeConnector());
89 assertEquals(nc32, getEdge.getHeadNodeConnector());
92 edgeProp.setProperties(props);
93 assertEquals(props, getProp);
94 assertEquals(props.size(), getProp.size());
97 //Create and check topology
98 List<EdgeProperties> edgePropList= new ArrayList<EdgeProperties>();
99 edgePropList.add(edgeProp);
101 Topology t = new Topology(edgePropList);
103 List<EdgeProperties> getEdgePropList = t.getEdgeProperties();
104 assertEquals(edgePropList, getEdgePropList);
105 assertEquals(1, getEdgePropList.size());
107 EdgeProperties edgeProp2 = new EdgeProperties(e23, props);
108 edgePropList.add(edgeProp2);
109 t.setEdgeProperties(edgePropList);
111 getEdgePropList = t.getEdgeProperties();
112 assertEquals(edgePropList, getEdgePropList);
113 assertEquals(2, getEdgePropList.size());