X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Ftopologymanager%2Fimplementation%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Ftopologymanager%2Finternal%2FTopologyManagerImplTest.java;h=13888646bcdd1f5c700c3b3ac0839a7f14d022f7;hb=8217c3243a6dc674ed91515b2cbdbcab7d37847c;hp=65487a614a85af96fabbac4e7df289d2f28c20e8;hpb=65497763171356ed5068e0040023f307dc7d4607;p=controller.git diff --git a/opendaylight/topologymanager/implementation/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java b/opendaylight/topologymanager/implementation/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java index 65487a614a..13888646bc 100644 --- a/opendaylight/topologymanager/implementation/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java +++ b/opendaylight/topologymanager/implementation/src/test/java/org/opendaylight/controller/topologymanager/internal/TopologyManagerImplTest.java @@ -11,6 +11,7 @@ package org.opendaylight.controller.topologymanager.internal; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.ArrayList; +import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -28,17 +29,270 @@ import org.opendaylight.controller.sal.core.Latency; import org.opendaylight.controller.sal.core.Node; import org.opendaylight.controller.sal.core.Node.NodeIDType; import org.opendaylight.controller.sal.core.NodeConnector; +import org.opendaylight.controller.sal.core.NodeConnector.NodeConnectorIDType; import org.opendaylight.controller.sal.core.Property; import org.opendaylight.controller.sal.core.State; import org.opendaylight.controller.sal.core.UpdateType; import org.opendaylight.controller.sal.packet.address.EthernetAddress; import org.opendaylight.controller.sal.topology.TopoEdgeUpdate; +import org.opendaylight.controller.sal.utils.Status; import org.opendaylight.controller.sal.utils.StatusCode; import org.opendaylight.controller.sal.utils.NodeConnectorCreator; import org.opendaylight.controller.sal.utils.NodeCreator; +import org.opendaylight.controller.switchmanager.ISwitchManager; +import org.opendaylight.controller.switchmanager.SpanConfig; +import org.opendaylight.controller.switchmanager.Subnet; +import org.opendaylight.controller.switchmanager.SubnetConfig; +import org.opendaylight.controller.switchmanager.Switch; +import org.opendaylight.controller.switchmanager.SwitchConfig; import org.opendaylight.controller.topologymanager.TopologyUserLinkConfig; public class TopologyManagerImplTest { + /** + * Mockup of switch manager that only maintains existence of node + * connector. + */ + private final class TestSwitchManager implements ISwitchManager { + private final Set nodeSet = new HashSet(); + private final Set nodeConnectorSet = + new HashSet(); + + private void addNodeConnectors(NodeConnector ... connectors) { + for (NodeConnector nc: connectors) { + if (nc != null) { + nodeSet.add(nc.getNode()); + nodeConnectorSet.add(nc); + } + } + } + + private void addNodeConnectors(TopologyUserLinkConfig ... links) { + for (TopologyUserLinkConfig link: links) { + NodeConnector src = + NodeConnector.fromString(link.getSrcNodeConnector()); + NodeConnector dst = + NodeConnector.fromString(link.getDstNodeConnector()); + addNodeConnectors(src, dst); + } + } + + @Override + public Status addSubnet(SubnetConfig configObject) { + return null; + } + + @Override + public Status removeSubnet(SubnetConfig configObject) { + return null; + } + + @Override + public Status modifySubnet(SubnetConfig configObject) { + return null; + } + + @Override + public Status removeSubnet(String name) { + return null; + } + + @Override + public List getNetworkDevices() { + return null; + } + + @Override + public List getSubnetsConfigList() { + return null; + } + + @Override + public SubnetConfig getSubnetConfig(String subnet) { + return null; + } + + @Override + public Subnet getSubnetByNetworkAddress(InetAddress networkAddress) { + return null; + } + + @Override + public Status saveSwitchConfig() { + return null; + } + + @Override + public Status addSpanConfig(SpanConfig configObject) { + return null; + } + + @Override + public Status removeSpanConfig(SpanConfig cfgObject) { + return null; + } + + @Override + public List getSpanConfigList() { + return null; + } + + @Override + public List getSpanPorts(Node node) { + return null; + } + + @Override + public void updateSwitchConfig(SwitchConfig cfgObject) { + } + + @Override + public Status updateNodeConfig(SwitchConfig switchConfig) { + return null; + } + + @Override + public Status removeNodeConfig(String nodeId) { + return null; + } + + @Override + public SwitchConfig getSwitchConfig(String nodeId) { + return null; + } + + @Override + public Status addPortsToSubnet(String name, List nodeConnectors) { + return null; + } + + @Override + public Status removePortsFromSubnet(String name, List nodeConnectors) { + return null; + } + + @Override + public Set getNodes() { + return new HashSet(nodeSet); + } + + @Override + public Map getNodeProps(Node node) { + return new HashMap(); + } + + @Override + public Property getNodeProp(Node node, String propName) { + return null; + } + + @Override + public void setNodeProp(Node node, Property prop) { + } + + @Override + public Status removeNodeProp(Node node, String propName) { + return null; + } + + @Override + public Status removeNodeAllProps(Node node) { + return null; + } + + @Override + public Set getUpNodeConnectors(Node node) { + return getNodeConnectors(node); + } + + @Override + public Set getNodeConnectors(Node node) { + Set set = new HashSet(); + for (NodeConnector nc: nodeConnectorSet) { + if (nc.getNode().equals(node)) { + set.add(nc); + } + } + + return set; + } + + @Override + public Set getPhysicalNodeConnectors(Node node) { + return getNodeConnectors(node); + } + + @Override + public Map getNodeConnectorProps(NodeConnector nodeConnector) { + return new HashMap(); + } + + @Override + public Property getNodeConnectorProp(NodeConnector nodeConnector, String propName) { + return null; + } + + @Override + public Status addNodeConnectorProp(NodeConnector nodeConnector, Property prop) { + return null; + } + + @Override + public Status removeNodeConnectorProp(NodeConnector nc, String propName) { + return null; + } + + @Override + public Status removeNodeConnectorAllProps(NodeConnector nodeConnector) { + return null; + } + + @Override + public NodeConnector getNodeConnector(Node node, String nodeConnectorName) { + return null; + } + + @Override + public boolean isSpecial(NodeConnector p) { + String type = p.getType(); + return (type.equals(NodeConnectorIDType.CONTROLLER) + || type.equals(NodeConnectorIDType.ALL) + || type.equals(NodeConnectorIDType.SWSTACK) + || type.equals(NodeConnectorIDType.HWPATH)); + } + + @Override + public Boolean isNodeConnectorEnabled(NodeConnector nodeConnector) { + if (doesNodeConnectorExist(nodeConnector)) { + return Boolean.TRUE; + } + return Boolean.FALSE; + } + + @Override + public boolean doesNodeConnectorExist(NodeConnector nc) { + return (nc != null && nodeConnectorSet.contains(nc)); + } + + @Override + public byte[] getControllerMAC() { + return new byte[6]; + } + + @Override + public byte[] getNodeMAC(Node node) { + return new byte[6]; + } + + @Override + public Property createProperty(String propName, String propValue) { + return null; + } + + @Override + public String getNodeDescription(Node node) { + return null; + } + } /* * Sets the node, edges and properties for edges here: Edge > nodeEdgeMap = topoManagerImpl.getNodeEdges(); for (Iterator>> i = nodeEdgeMap.entrySet() @@ -126,7 +382,9 @@ public class TopologyManagerImplTest { @Test public void testGetEdges() throws ConstructionException { TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); - setNodeEdges(topoManagerImpl); + TestSwitchManager swMgr = new TestSwitchManager(); + topoManagerImpl.setSwitchManager(swMgr); + setNodeEdges(topoManagerImpl, swMgr); Map> edgeProperty = topoManagerImpl.getEdges(); @@ -208,8 +466,12 @@ public class TopologyManagerImplTest { "OF|10@OF|20", "OF|10@OF|20"); TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); + TestSwitchManager swMgr = new TestSwitchManager(); + topoManagerImpl.setSwitchManager(swMgr); topoManagerImpl.nonClusterObjectCreate(); + swMgr.addNodeConnectors(link1, link2, link3, link4); + Assert.assertTrue(topoManagerImpl.addUserLink(link1).isSuccess()); Assert.assertTrue(topoManagerImpl.addUserLink(link2).getCode() == StatusCode.CONFLICT); Assert.assertTrue(topoManagerImpl.addUserLink(link3).getCode() == StatusCode.CONFLICT); @@ -222,6 +484,14 @@ public class TopologyManagerImplTest { .isSuccess()); Assert.assertTrue(topoManagerImpl.getUserLinks().isEmpty()); + TopologyUserLinkConfig badlink1 = + new TopologyUserLinkConfig("bad1", "OF|1@OF|2", "OF|1@OF|3"); + TopologyUserLinkConfig badlink2 = + new TopologyUserLinkConfig("bad2", "OF|10@OF|21", "OF|10@OF|20"); + Assert.assertEquals(StatusCode.NOTFOUND, + topoManagerImpl.addUserLink(badlink1).getCode()); + Assert.assertEquals(StatusCode.NOTFOUND, + topoManagerImpl.addUserLink(badlink2).getCode()); } @Test @@ -229,6 +499,8 @@ public class TopologyManagerImplTest { TopologyUserLinkConfig[] link = new TopologyUserLinkConfig[5]; TopologyUserLinkConfig[] reverseLink = new TopologyUserLinkConfig[5]; TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); + TestSwitchManager swMgr = new TestSwitchManager(); + topoManagerImpl.setSwitchManager(swMgr); topoManagerImpl.nonClusterObjectCreate(); String name = "Test"; @@ -285,7 +557,11 @@ public class TopologyManagerImplTest { Assert.assertTrue(link[i].isValid() == true); reverseLink[i] = new TopologyUserLinkConfig(name, dstNodeConnector, srcNodeConnector); - topoManagerImpl.addUserLink(link[i]); + + Assert.assertEquals(StatusCode.NOTFOUND, + topoManagerImpl.addUserLink(link[i]).getCode()); + swMgr.addNodeConnectors(link[i]); + Assert.assertTrue(topoManagerImpl.addUserLink(link[i]).isSuccess()); } ConcurrentMap userLinks = topoManagerImpl @@ -308,6 +584,8 @@ public class TopologyManagerImplTest { public void testHostLinkMethods() throws ConstructionException, UnknownHostException { TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); + TestSwitchManager swMgr = new TestSwitchManager(); + topoManagerImpl.setSwitchManager(swMgr); topoManagerImpl.nonClusterObjectCreate(); int hostCounter = 0; @@ -369,6 +647,8 @@ public class TopologyManagerImplTest { public void testGetNodesWithNodeConnectorHost() throws ConstructionException, UnknownHostException { TopologyManagerImpl topoManagerImpl = new TopologyManagerImpl(); + TestSwitchManager swMgr = new TestSwitchManager(); + topoManagerImpl.setSwitchManager(swMgr); topoManagerImpl.nonClusterObjectCreate(); int hostCounter = 0;