-
/*
* Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
*
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.controller.routing.dijkstra_implementation;
import org.opendaylight.controller.sal.core.Bandwidth;
import org.opendaylight.controller.sal.core.Path;
import org.opendaylight.controller.sal.core.Property;
import org.opendaylight.controller.sal.core.UpdateType;
+import org.opendaylight.controller.sal.topology.TopoEdgeUpdate;
import org.opendaylight.controller.sal.utils.NodeConnectorCreator;
import org.opendaylight.controller.sal.utils.NodeCreator;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.opendaylight.controller.routing.dijkstra_implementation.internal.DijkstraImplementation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class DijkstraTest {
+ protected static final Logger logger = LoggerFactory
+ .getLogger(DijkstraTest.class);
+
@Test
public void testSinglePathRouteNoBw() {
DijkstraImplementation imp = new DijkstraImplementation();
Node node1 = NodeCreator.createOFNode((long) 1);
Node node2 = NodeCreator.createOFNode((long) 2);
Node node3 = NodeCreator.createOFNode((long) 3);
+ List<TopoEdgeUpdate> topoedgeupdateList = new ArrayList<TopoEdgeUpdate>();
NodeConnector nc11 = NodeConnectorCreator.createOFNodeConnector(
(short) 1, node1);
NodeConnector nc21 = NodeConnectorCreator.createOFNodeConnector(
try {
edge1 = new Edge(nc11, nc21);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props = new HashSet<Property>();
props.add(new Bandwidth(0));
- imp.edgeUpdate(edge1, UpdateType.ADDED, props);
+ TopoEdgeUpdate teu1 = new TopoEdgeUpdate(edge1, props, UpdateType.ADDED);
+ topoedgeupdateList.add(teu1);
+
NodeConnector nc22 = NodeConnectorCreator.createOFNodeConnector(
(short) 2, node2);
NodeConnector nc31 = NodeConnectorCreator.createOFNodeConnector(
try {
edge2 = new Edge(nc22, nc31);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props2 = new HashSet<Property>();
- props.add(new Bandwidth(0));
- imp.edgeUpdate(edge2, UpdateType.ADDED, props2);
+ props2.add(new Bandwidth(0));
+ TopoEdgeUpdate teu2 = new TopoEdgeUpdate(edge2, props2,
+ UpdateType.ADDED);
+ topoedgeupdateList.add(teu2);
+ imp.edgeUpdate(topoedgeupdateList);
Path res = imp.getRoute(node1, node3);
List<Edge> expectedPath = (List<Edge>) new LinkedList<Edge>();
try {
expectedRes = new Path(expectedPath);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
if (!res.equals(expectedRes)) {
System.out.println("Actual Res is " + res);
@Test
public void testShortestPathRouteNoBw() {
DijkstraImplementation imp = new DijkstraImplementation();
+ List<TopoEdgeUpdate> topoedgeupdateList = new ArrayList<TopoEdgeUpdate>();
imp.init();
Node node1 = NodeCreator.createOFNode((long) 1);
Node node2 = NodeCreator.createOFNode((long) 2);
try {
edge1 = new Edge(nc11, nc21);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props = new HashSet<Property>();
props.add(new Bandwidth(0));
- imp.edgeUpdate(edge1, UpdateType.ADDED, props);
+ TopoEdgeUpdate teu1 = new TopoEdgeUpdate(edge1, props, UpdateType.ADDED);
+ topoedgeupdateList.add(teu1);
NodeConnector nc22 = NodeConnectorCreator.createOFNodeConnector(
(short) 2, node2);
try {
edge2 = new Edge(nc22, nc31);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props2 = new HashSet<Property>();
- props.add(new Bandwidth(0));
- imp.edgeUpdate(edge2, UpdateType.ADDED, props2);
+ props2.add(new Bandwidth(0));
+ TopoEdgeUpdate teu2 = new TopoEdgeUpdate(edge2, props2,
+ UpdateType.ADDED);
+ topoedgeupdateList.add(teu2);
NodeConnector nc12 = NodeConnectorCreator.createOFNodeConnector(
(short) 2, node1);
try {
edge3 = new Edge(nc12, nc32);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props3 = new HashSet<Property>();
- props.add(new Bandwidth(0));
- imp.edgeUpdate(edge3, UpdateType.ADDED, props3);
+ props3.add(new Bandwidth(0));
+ TopoEdgeUpdate teu3 = new TopoEdgeUpdate(edge3, props3,
+ UpdateType.ADDED);
+ topoedgeupdateList.add(teu3);
+ imp.edgeUpdate(topoedgeupdateList);
Path res = imp.getRoute(node1, node3);
try {
expectedRes = new Path(expectedPath);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
if (!res.equals(expectedRes)) {
System.out.println("Actual Res is " + res);
public void testShortestPathRouteNoBwAfterLinkDelete() {
DijkstraImplementation imp = new DijkstraImplementation();
imp.init();
+ List<TopoEdgeUpdate> topoedgeupdateList = new ArrayList<TopoEdgeUpdate>();
Node node1 = NodeCreator.createOFNode((long) 1);
Node node2 = NodeCreator.createOFNode((long) 2);
Node node3 = NodeCreator.createOFNode((long) 3);
try {
edge1 = new Edge(nc11, nc21);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props = new HashSet<Property>();
props.add(new Bandwidth(0));
- imp.edgeUpdate(edge1, UpdateType.ADDED, props);
+ TopoEdgeUpdate teu1 = new TopoEdgeUpdate(edge1, props, UpdateType.ADDED);
+ topoedgeupdateList.add(teu1);
NodeConnector nc22 = NodeConnectorCreator.createOFNodeConnector(
(short) 2, node2);
try {
edge2 = new Edge(nc22, nc31);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props2 = new HashSet<Property>();
- props.add(new Bandwidth(0));
- imp.edgeUpdate(edge2, UpdateType.ADDED, props2);
+ props2.add(new Bandwidth(0));
+ TopoEdgeUpdate teu2 = new TopoEdgeUpdate(edge2, props2,
+ UpdateType.ADDED);
+ topoedgeupdateList.add(teu2);
NodeConnector nc12 = NodeConnectorCreator.createOFNodeConnector(
(short) 2, node1);
try {
edge3 = new Edge(nc12, nc32);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
Set<Property> props3 = new HashSet<Property>();
- props.add(new Bandwidth(0));
- imp.edgeUpdate(edge3, UpdateType.ADDED, props3);
+ props3.add(new Bandwidth(0));
+ TopoEdgeUpdate teu3 = new TopoEdgeUpdate(edge3, props3,
+ UpdateType.ADDED);
+ topoedgeupdateList.add(teu3);
+ TopoEdgeUpdate teu4 = new TopoEdgeUpdate(edge3, props3,
+ UpdateType.REMOVED);
+ topoedgeupdateList.add(teu4);
- imp.edgeUpdate(edge3, UpdateType.REMOVED, props3);
+ imp.edgeUpdate(topoedgeupdateList);
Path res = imp.getRoute(node1, node3);
List<Edge> expectedPath = (List<Edge>) new LinkedList<Edge>();
try {
expectedRes = new Path(expectedPath);
} catch (ConstructionException e) {
- e.printStackTrace();
+ logger.error("", e);
}
if (!res.equals(expectedRes)) {
System.out.println("Actual Res is " + res);