Add nemo-renderers partical test files 97/30897/1
authorsaomenmen <zhangmroy@163.com>
Mon, 7 Dec 2015 09:56:27 +0000 (17:56 +0800)
committersaomenmen <zhangmroy@163.com>
Mon, 7 Dec 2015 09:57:41 +0000 (17:57 +0800)
Change-Id: Id2cbfd6049d5b72de70fccf89e5d376db2726461
Signed-off-by: saomenmen <zhangmroy@163.com>
nemo-renderers/cli-renderer/src/test/java/org/opendaylight/nemo/renderer/cli/CliBuilderTest.java [new file with mode: 0644]
nemo-renderers/cli-renderer/src/test/java/org/opendaylight/nemo/renderer/cli/CliRendererTest.java

diff --git a/nemo-renderers/cli-renderer/src/test/java/org/opendaylight/nemo/renderer/cli/CliBuilderTest.java b/nemo-renderers/cli-renderer/src/test/java/org/opendaylight/nemo/renderer/cli/CliBuilderTest.java
new file mode 100644 (file)
index 0000000..1751412
--- /dev/null
@@ -0,0 +1,283 @@
+/*
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+package org.opendaylight.nemo.renderer.cli;
+
+import junit.framework.TestCase;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.path.instance.PhysicalLink;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNetwork;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalLinks;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalPaths;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.nodes.PhysicalNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.paths.PhysicalPath;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.paths.PhysicalPathBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.intent.vn.mapping.result.VirtualResource;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.UserVnPnMapping;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.user.vn.pn.mapping.VnPnMappingResult;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConnectionId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalResourceEntityId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalLinkId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalPortId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualResourceEntityId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.IntentId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.EndNode;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.VirtualResourceInstance.VirtualResourceType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalLinkId;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.*;
+/**
+ * Created by zhangmeng on 2015/12/7.
+ */
+public class CliBuilderTest extends TestCase {
+    private CliBuilder cliBuilder;
+    private DataBroker dataBroker;
+
+    @Before
+    public void setUp() throws Exception {
+        dataBroker = mock(DataBroker.class);
+        cliBuilder = new CliBuilder(dataBroker);
+    }
+
+    @Test
+    public void testInit() throws Exception {
+        List<PhysicalNode> physicalNodes = new ArrayList<PhysicalNode>();
+        cliBuilder.init(physicalNodes);
+    }
+
+    @Test//
+    public void testIsFullMeshTopology() throws Exception {
+//        Object configElementOnePE ;
+//        Object configElementAnother;
+//        Class classes = cliBuilder.getClass().getDeclaringClass();
+//
+//            int i = classes.getModifiers();
+//            String s = Modifier.toString(i);
+//            configElementOnePE = classes.getConstructor().newInstance();
+//            configElementAnother = classes.getConstructor().newInstance();
+//
+//
+//        PhysicalNodeId physicalNodeId = mock(PhysicalNodeId.class);
+//        PhysicalNodeId physicalNodeId1 = mock(PhysicalNodeId.class);
+//        List<List> peersList = new ArrayList<List>();
+//        List peers = new ArrayList();
+//
+//        peers.add(configElementOnePE);
+//        peers.add(configElementAnother);
+//        peersList.add(peers);
+//
+//        when(configElementOnePE.getPhysicalNodeId()).thenReturn(physicalNodeId);
+//        when(configElementAnother.getPhysicalNodeId()).thenReturn(physicalNodeId1);
+//
+//        cliBuilder.isFullMeshTopology(peersList);
+
+//        Class classes[] = CliBuilder.class.getClass().getDeclaredClasses();
+//        Assert.assertTrue(classes.length == 1);
+//        Class c = classes[0];
+
+
+    }
+
+    @Test
+    public void testUpdateCliExecutionSequence() throws Exception {
+        User user = mock(User.class);
+        VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
+        UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
+        UserVnPnMapping userVnPnMapping = mock(UserVnPnMapping.class);
+        PhysicalNetwork physicalNetwork = mock(PhysicalNetwork.class);
+        Objects objects = mock(Objects.class);
+        Connection connection = mock(Connection.class);
+        EndNode endnode = mock(EndNode.class);
+        EndNode endnode1 = mock(EndNode.class);
+        NodeId nodeId = mock(NodeId.class);
+        NodeId nodeId1 = mock(NodeId.class);
+        Node node = mock(Node.class);
+        NodeType nodeType = mock(NodeType.class);
+        IntentVnMappingResult intentVnMappingResult = mock(IntentVnMappingResult.class);
+        IntentId intentId = mock(IntentId.class);
+        VirtualResource virtualResource = mock(VirtualResource.class);
+        VnPnMappingResult vnPnMappingResult = mock(VnPnMappingResult.class);
+        VirtualResourceType virtualResourceType = VirtualResource.VirtualResourceType.Vport;
+        VirtualResourceEntityId virtualResourceEntityId = mock(VirtualResourceEntityId.class);
+        PhysicalResourceEntityId physicalResourceEntityId = mock(PhysicalResourceEntityId.class);
+        PhysicalResourceEntityId physicalResourceEntityId_parent = mock(PhysicalResourceEntityId.class);
+        PhysicalPaths physicalPaths = mock(PhysicalPaths.class);
+        PhysicalPath physicalPath = mock(PhysicalPath.class);
+        PhysicalLink physicalLink = mock(PhysicalLink.class);
+        PhysicalLinkId physicalLinkId = mock(PhysicalLinkId.class);
+        PhysicalLinkId physicalLinkId1 = mock(PhysicalLinkId.class);
+        PhysicalLinks physicalLinksInNetwork = mock(PhysicalLinks.class);
+        PhysicalNodeId physicalNodeId_src = mock(PhysicalNodeId.class);
+        PhysicalNodeId physicalNodeId_dst = mock(PhysicalNodeId.class);
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                .xml.ns.yang.generic.physical.network.rev151010
+                .physical.path.instance.PhysicalLink physicalLink_special =
+                mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                        .xml.ns.yang.generic.physical.network.rev151010
+                        .physical.path.instance.PhysicalLink.class);
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                .xml.ns.yang.generic.physical.network.rev151010
+                .physical.path.instance.PhysicalLink physicalLink_special1 =
+                mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                        .xml.ns.yang.generic.physical.network.rev151010
+                        .physical.path.instance.PhysicalLink.class);
+        org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                .xml.ns.yang.generic.physical.network.rev151010
+                .physical.network.physical.links
+                .PhysicalLink physicalLink_getSrcNodeIdforLinkInPath =
+                mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                        .xml.ns.yang.generic.physical.network.rev151010
+                        .physical.network.physical.links
+                        .PhysicalLink.class);
+        List<PhysicalLink> physicalLinkList = new ArrayList<PhysicalLink>();
+        List<Connection> connectionList = new ArrayList<Connection>();
+        List<EndNode> endNodeList = new ArrayList<EndNode>();
+        List<Node> nodeList = new ArrayList<Node>();
+        List<IntentVnMappingResult> intentVnMappingResults = new ArrayList<IntentVnMappingResult>();
+        List<VirtualResource> virtualResources = new ArrayList<VirtualResource>();
+        List<VnPnMappingResult> vnPnMappingResults = new ArrayList<VnPnMappingResult>();
+        List<PhysicalPath> physicalPathList = new ArrayList<PhysicalPath>();
+        List< org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                .xml.ns.yang.generic.physical.network.rev151010
+                .physical.path.instance.PhysicalLink> physicalLinks =
+                new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.path.instance.PhysicalLink>();
+        List<org.opendaylight.yang.gen.v1.urn.opendaylight.params
+                .xml.ns.yang.generic.physical.network.rev151010
+                .physical.network.physical.links.PhysicalLink>
+                physicalLinksInNetworkList =
+                new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.links.PhysicalLink>();
+
+
+        intentVnMappingResults.add(intentVnMappingResult);
+        connectionList.add(connection);
+        endNodeList.add(endnode);
+        nodeList.add(node);
+        virtualResources.add(virtualResource);
+        vnPnMappingResults.add(vnPnMappingResult);
+        physicalPathList.add(physicalPath);
+        physicalLinkList.add(physicalLink);
+        physicalLinks.add(physicalLink_special);
+        physicalLinks.add(physicalLink_special1);
+        physicalLinksInNetworkList.add(physicalLink_getSrcNodeIdforLinkInPath);
+//        endNodeList.add(endnode1);
+
+        when(user.getObjects())
+                .thenReturn(null)//test null
+                .thenReturn(objects)//get into circle
+                .thenReturn(objects)//List<Connection> connectionList = user.getObjects().getConnection();
+                .thenReturn(objects);//used in method "isConnectTwoExtGroup"
+        //test null
+        cliBuilder.updateCliExecutionSequence(user, virtualNetwork, userIntentVnMapping, userVnPnMapping, physicalNetwork);
+        verify(user).getObjects();
+
+        //test not null
+        when(objects.getConnection()).thenReturn(connectionList);
+        when(connection.getEndNode())
+                .thenReturn(endNodeList)
+                .thenReturn(endNodeList);//used in method "isConnectTwoExtGroup"
+        ////get into method "isConnectTwoExtGroup"
+        when(endnode.getNodeId()).thenReturn(nodeId);
+        when(endnode1.getNodeId()).thenReturn(nodeId1);
+        when(objects.getNode()).thenReturn(nodeList);
+        when(node.getNodeId()).thenReturn(nodeId);//if(node.getNodeId().equals(nodeId))
+        when(node.getNodeType()).thenReturn(nodeType);
+        when(nodeType.getValue())
+                .thenReturn(new String("null"))
+                .thenReturn(new String("ext-group"));//test not null
+
+        endNodeList.add(endnode1);
+        Assert.assertTrue(endNodeList.size() == 2);
+        Assert.assertTrue(endNodeList.get(1) == endnode1 && endNodeList.get(0) == endnode);
+
+        //test null
+        cliBuilder.updateCliExecutionSequence(user, virtualNetwork, userIntentVnMapping, userVnPnMapping, physicalNetwork);
+        verify(nodeType).getValue();
+
+        ////get into method "getNodeVnPnMappingResult".  args(nodeId,userIntentVnMapping,userVnPnMapping)
+        when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);
+        when(intentVnMappingResult.getIntentId()).thenReturn(intentId);
+        when(nodeId.getValue()).thenReturn(new String("test"));
+        when(intentId.getValue()).thenReturn(new String("test"));
+        when(intentVnMappingResult.getVirtualResource()).thenReturn(virtualResources);
+        when(virtualResource.getVirtualResourceType()).thenReturn(virtualResourceType);
+        when(userVnPnMapping.getVnPnMappingResult()).thenReturn(vnPnMappingResults);
+        when(vnPnMappingResult.getVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);
+        when(virtualResource.getVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("test"));
+        //get out of method "getNodeVnPnMappingResult"  ....  and vnPnMappingResult is returned
+        when(vnPnMappingResult.getPhysicalResourceEntityId()).thenReturn(physicalResourceEntityId);
+        when(physicalResourceEntityId.getValue()).thenReturn(new String("test"));
+        when(vnPnMappingResult.getParentPhysicalResourceEntityId()).thenReturn(physicalResourceEntityId_parent);
+        when(physicalResourceEntityId_parent.getValue()).thenReturn(new String("test"));
+        /////get into method "getNodeVnPnMappingResult" again. args(nodeId,userIntentVnMapping,userVnPnMapping)
+        when(nodeId1.getValue()).thenReturn(new String("test"));
+        /*
+        get out of method "getNodeVnPnMappingResult"  ....  and vnPnMappingResult is returned
+                no more when and return is needed!
+        */
+        ////get into method "getPhysicalPathforConnection" args (onePhysicalNodeId, otherPhysicalNodeId, physicalNetwork)
+        when(physicalNetwork.getPhysicalPaths()).thenReturn(physicalPaths);
+        when(physicalPaths.getPhysicalPath())
+                .thenReturn(null)
+                .thenReturn(physicalPathList);
+
+        cliBuilder.updateCliExecutionSequence(user, virtualNetwork, userIntentVnMapping, userVnPnMapping, physicalNetwork);
+
+        //////get into method "sortPhysicalLinksOfPhysicalPath" args(physicalPath)
+        when(physicalPath.getPhysicalLink())
+                .thenReturn(physicalLinkList)//if ( physicalPath.getPhysicalLink().isEmpty()|| 1 == physicalPath.getPhysicalLink().size() )
+                .thenReturn(physicalLinkList)
+                .thenReturn(physicalLinks);//back to method "getPhysicalPathforConnection"
+        Assert.assertTrue(physicalLinkList.size() == 1);
+        ////get out of method "sortPhysicalLinksOfPhysicalPath" args(physicalPath)
+        when(physicalLink_special.getLinkId()).thenReturn(physicalLinkId);
+        when(physicalLink_special1.getLinkId()).thenReturn(physicalLinkId1);
+        //////get into method "getSrcNodeIdforLinkInPath"
+        PhysicalLinkId physicalLinkId_getSrcNodeIdforLinkInPath = mock(PhysicalLinkId.class);
+        when(physicalNetwork.getPhysicalLinks()).thenReturn(physicalLinksInNetwork);
+        when(physicalLinksInNetwork.getPhysicalLink()).thenReturn(physicalLinksInNetworkList);
+        when(physicalLink_getSrcNodeIdforLinkInPath.getLinkId()).thenReturn(physicalLinkId_getSrcNodeIdforLinkInPath);
+        when(physicalLinkId_getSrcNodeIdforLinkInPath.getValue()).thenReturn(new String("test"));
+        when(physicalLinkId.getValue()).thenReturn(new String("test"));
+        when(physicalLink_getSrcNodeIdforLinkInPath.getSrcNodeId()).thenReturn(physicalNodeId_src);
+        ////get out of  method "getSrcNodeIdforLinkInPath"
+        ////// get into method "getDestNodeIdforLinkInPath"
+        when(physicalLinkId1.getValue()).thenReturn(new String("test"));
+        when(physicalLink_getSrcNodeIdforLinkInPath.getDestNodeId()).thenReturn(physicalNodeId_dst);
+        //// return into method "getPhysicalPathforConnection"
+        when(physicalNodeId_src.getValue()).thenReturn(new String("test1"));
+        when(physicalNodeId_dst.getValue()).thenReturn(new String("test"));
+
+        cliBuilder.updateCliExecutionSequence(user, virtualNetwork, userIntentVnMapping, userVnPnMapping, physicalNetwork);
+
+    }
+
+    @Test
+    public void testClose() throws Exception {
+
+    }
+}
\ No newline at end of file
index f207bddcc13dfcbbf115a05cf6a8d85ff83bf8ac..571edbadbeff062ea7dc837552b9ab29e82ce2a6 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 package org.opendaylight.nemo.renderer.cli;
 import junit.framework.TestCase;
 import org.junit.Assert;