Add nemo-impl test file 23/31423/1
authorswsiyu <swsiyu@163.com>
Wed, 16 Dec 2015 05:33:53 +0000 (13:33 +0800)
committerswsiyu <swsiyu@163.com>
Wed, 16 Dec 2015 05:34:48 +0000 (13:34 +0800)
Change-Id: Id39f36b0a1b2bd189e896ce779208c525811cbed
Signed-off-by: swsiyu <swsiyu@163.com>
nemo-impl/src/test/java/org/opendaylight/nemo/intent/action/ActionResolverTest.java [new file with mode: 0644]

diff --git a/nemo-impl/src/test/java/org/opendaylight/nemo/intent/action/ActionResolverTest.java b/nemo-impl/src/test/java/org/opendaylight/nemo/intent/action/ActionResolverTest.java
new file mode 100644 (file)
index 0000000..80c8781
--- /dev/null
@@ -0,0 +1,570 @@
+/*\r
+ * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
+ *\r
+ * This program and the accompanying materials are made available under the\r
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
+ * and is available at http://www.eclipse.org/legal/epl-v10.html\r
+ */\r
+\r
+package org.opendaylight.nemo.intent.action;\r
+\r
+\r
+import junit.framework.TestCase;\r
+import org.junit.Assert;\r
+import org.junit.Before;\r
+import org.junit.Test;\r
+import static org.mockito.Mockito.*;\r
+import static org.junit.Assert.*;\r
+\r
+import  java.io.*;\r
+//import  java.util.*;\r
+\r
+import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
+import org.opendaylight.nemo.intent.IntentResolutionException;\r
+import org.opendaylight.nemo.intent.IntentResolverUtils;\r
+import org.opendaylight.nemo.intent.computation.VNComputationUnit;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPath;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPathBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPortBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;\r
+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;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.user.intent.vn.mapping.IntentVnMappingResultBuilder;\r
+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;\r
+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.VirtualResourceBuilder;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;\r
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue;\r
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.*;\r
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConnectionId;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualLinks;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualNodes;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualPaths;\r
+//import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValue;\r
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;\r
+\r
+import org.slf4j.Logger;\r
+import org.slf4j.LoggerFactory;\r
+\r
+import javax.lang.model.type.ArrayType;\r
+//import java.sql.Connection;\r
+import java.lang.reflect.Array;\r
+import java.util.*;\r
+import java.lang.*;\r
+\r
+\r
+\r
+/**\r
+ * Created by Thomas Liu on 2015/12/7.\r
+ */\r
+public class ActionResolverTest extends TestCase {\r
+\r
+    private ActionResolver actionResolverTest;\r
+    private DataBroker dataBroker;\r
+    private Map<UserId, VNComputationUnit> vnComputationUnits;\r
+\r
+    private User user;\r
+    private Operation operation;\r
+    private Node node;\r
+    private Connection connection;\r
+    private Flow flow;\r
+    private VirtualNetwork virtualNetwork;\r
+    private  UserIntentVnMapping userIntentVnMapping;\r
+\r
+    List<Action> actions;\r
+    private Action action;\r
+    List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue> parameterValues1;\r
+    private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue intValue1;\r
+    List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue> parameterValues2;\r
+    private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue intValue2;\r
+    private ParameterValues parametervalues;\r
+    private PropertyValues propertyValues;\r
+    private Property property,property2;\r
+    private List<Property> properties;\r
+    private List<IntentVnMappingResult> intentVnMappingResults;\r
+    private ConnectionId connectionId;\r
+    private List<VirtualResource> virtualResources;\r
+    private VirtualLinks virtualLink;\r
+    private List<VirtualLink> virtualLinks;\r
+    private VirtualResourceEntityId virtualResourceEntityId;\r
+\r
+\r
+    //deny\r
+    private List<Node> nodes;\r
+    private List<VirtualNode> nodes2;\r
+\r
+    private List<VirtualNode> virtualNodes;\r
+    //private List<IntentVnMappingResult> intentVnMappingResults;\r
+    private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects objects;\r
+    private VirtualNodes virtualNode;\r
+    private List<MatchItem> matchItem;\r
+    private MatchItemValue matchItemValue;\r
+    private NodeId nodeId;\r
+    private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property> properties2;\r
+    private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue> stringValue;\r
+\r
+    //gothrough\r
+    private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue> stringValue2;\r
+    private List<Node> nodes3;\r
+    private List<Node> nodes4;\r
+    private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects objects2;\r
+    private VirtualPaths virtualPath;\r
+    private List<VirtualPath> virtualPaths;\r
+    private List<SubNode> subNodes;\r
+    private List<VirtualPort> virtualPorts1,virtualPorts2;\r
+\r
+\r
+\r
+    @org.junit.Before\r
+    public void setUp() throws Exception {\r
+        dataBroker = mock(DataBroker.class);\r
+        vnComputationUnits = new HashMap<UserId, VNComputationUnit>();\r
+        vnComputationUnits.put(mock(UserId.class), mock(VNComputationUnit.class));\r
+        actionResolverTest = new ActionResolver(dataBroker,vnComputationUnits);\r
+\r
+\r
+        user = mock(User.class);\r
+        operation = mock(Operation.class);\r
+        node = mock(Node.class);\r
+        connection = mock(Connection.class);\r
+        flow = mock(Flow.class);\r
+        virtualNetwork = mock(VirtualNetwork.class);\r
+        userIntentVnMapping = mock(UserIntentVnMapping.class);\r
+\r
+\r
+        actions = new ArrayList<Action>();\r
+        actions.add(mock(Action.class));\r
+        parameterValues1 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue>(){{ add(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue.class)); }};\r
+        parameterValues2 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue>(){{ add(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue.class)); }};\r
+        parametervalues = mock(ParameterValues.class);\r
+        property = mock(Property.class);\r
+        properties = new ArrayList<Property>(){{add(mock(Property.class));}};\r
+        propertyValues = mock(PropertyValues.class);\r
+        intentVnMappingResults = new ArrayList<IntentVnMappingResult>(){{add(mock(IntentVnMappingResult.class));}};\r
+        connectionId = mock(ConnectionId.class);\r
+        virtualResources = new ArrayList<VirtualResource>(){{add(mock(VirtualResource.class));}};\r
+        virtualLink = mock(VirtualLinks.class);\r
+        virtualLinks = new ArrayList<VirtualLink>(){{add(mock(VirtualLink.class));}};\r
+        virtualResourceEntityId = mock(VirtualResourceEntityId.class);\r
+\r
+        //deny\r
+        nodes = new ArrayList<Node>(){{add(mock(Node.class));}};\r
+        //nodes2 = new ArrayList<VirtualNode>(){{add(mock(VirtualNode.class));}};\r
+        virtualNodes = new ArrayList<VirtualNode>(){{add(mock(VirtualNode.class));}};\r
+        //intentVnMappingResults = new ArrayList<IntentVnMappingResult>(){{add(mock(IntentVnMappingResult.class));}};\r
+        objects = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects.class);\r
+        virtualNode = mock(VirtualNodes.class);\r
+        matchItem = new ArrayList<MatchItem>(){{add(mock(MatchItem.class));}};\r
+        matchItemValue = mock(MatchItemValue.class);\r
+        nodeId = mock(NodeId.class);\r
+        properties2 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property>(){{add(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property.class));}};\r
+        stringValue = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue>(){{add(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue.class));}};\r
+\r
+\r
+        //gothrough\r
+        stringValue2 = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue>(){{add(mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue.class));}};\r
+        nodes3 = new ArrayList<Node>(){{add(mock(Node.class));}};\r
+        nodes4 = new ArrayList<Node>(){{add(mock(Node.class));}};\r
+        objects2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects.class);\r
+        virtualPath = mock(VirtualPaths.class);\r
+        virtualPaths = new ArrayList<VirtualPath>(){{add(mock(VirtualPath.class));}};\r
+        subNodes = new ArrayList<SubNode>(){{add(mock(SubNode.class));}};\r
+        virtualPorts1 = new ArrayList<VirtualPort>();\r
+        virtualPorts2 = new ArrayList<VirtualPort>();\r
+\r
+    }\r
+\r
+    @org.junit.Test\r
+    public void testResolveActions() throws Exception {\r
+        actionResolverTest.resolveActions(user,operation,node,virtualNetwork, userIntentVnMapping);\r
+\r
+    }\r
+\r
+    @org.junit.Test\r
+    public void testResolveActions1() throws Exception {\r
+        when(operation.getAction()).thenReturn(actions);\r
+        when(actions.get(0).getActionName()).thenReturn(new ActionName("qos-bandwidth"));\r
+        action = actions.get(0);\r
+        when(action.getParameterValues()).thenReturn(parametervalues);\r
+        when(parametervalues.getIntValue()).thenReturn(parameterValues1);\r
+        intValue1 = parameterValues1.get(0);\r
+        when(intValue1.getValue()).thenReturn(new Long(1));\r
+        when(connection.getProperty()).thenReturn(properties);\r
+        when(properties.get(0).getPropertyName()).thenReturn(new PropertyName("bandwidth"));\r
+        property2 = properties.get(0);\r
+        when(property2.getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getIntValue()).thenReturn(parameterValues2);\r
+        intValue2 = parameterValues2.get(0);\r
+        when(intValue2.getValue()).thenReturn(new Long(2));\r
+        when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
+        when(connection.getConnectionId()).thenReturn(connectionId);\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId(connectionId));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLink);\r
+        when(virtualLink.getVirtualLink()).thenReturn(virtualLinks);\r
+        when(virtualResources.get(0).getVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn("11111111-1111-1111-1111-111111111111");\r
+        when(virtualLinks.get(0).getLinkId()).thenReturn(new VirtualLinkId("11111111-1111-1111-1111-111111111111"));\r
+        actionResolverTest.resolveActions(user,operation,connection,virtualNetwork, userIntentVnMapping);\r
+\r
+    }\r
+\r
+    @org.junit.Test\r
+    public void testResolveActionsDeny() throws Exception {\r
+\r
+        //deny\r
+        when(operation.getAction()).thenReturn(actions);\r
+        when(actions.get(0).getActionName()).thenReturn(new ActionName("deny"));\r
+        when(user.getObjects()).thenReturn(objects);\r
+        when(objects.getNode()).thenReturn(nodes);\r
+        when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
+        when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
+        when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(operation.getOperationId()).thenReturn(new OperationId("11111111-1111-1111-1111-111111111111"));\r
+        //actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+    }\r
+    /*@org.junit.Test\r
+    public void testResolveActionsAllow() throws Exception\r
+    {\r
+\r
+        //allow\r
+        when(operation.getAction()).thenReturn(actions);\r
+        when(actions.get(0).getActionName()).thenReturn(new ActionName("allow"));\r
+        when(user.getObjects()).thenReturn(objects);\r
+        when(objects.getNode()).thenReturn(nodes);\r
+        when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
+        when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
+        when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
+\r
+\r
+\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        System.out.println("1");\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        System.out.println("2");\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+        System.out.println("3");\r
+        //when(flow.getFlowId()).thenReturn(new FlowId("11111111-1111-1111-1111-111111111111"));\r
+\r
+\r
+\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("dst-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("dst-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+        actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
+\r
+\r
+    }*/\r
+\r
+    @org.junit.Test\r
+    public void testResolveActionsGoChain() throws Exception {\r
+        //ResolveActions()\r
+        when(operation.getAction()).thenReturn(actions);\r
+        when(actions.get(0).getActionName()).thenReturn(new ActionName("go-through"));\r
+        when(actions.get(0).getParameterValues()).thenReturn(parametervalues);\r
+        when(parametervalues.getStringValue()).thenReturn(stringValue2);\r
+\r
+        //resolveGoThroughAction()\r
+        when(user.getObjects()).thenReturn(objects);\r
+        when(objects.getNode()).thenReturn(nodes3);\r
+        when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        //chaingroup\r
+        when(nodes3.get(0).getNodeType()).thenReturn(new NodeType("chain-group"));\r
+        //resolveGoThroughChainGroupAction()\r
+        when(user.getObjects()).thenReturn(objects2);\r
+        when(objects2.getNode()).thenReturn(nodes3);\r
+        when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
+        when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
+        when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLink);\r
+        when(virtualLink.getVirtualLink()).thenReturn(virtualLinks);\r
+        when(virtualNetwork.getVirtualPaths()).thenReturn(virtualPath);\r
+        when(virtualPath.getVirtualPath()).thenReturn(virtualPaths);\r
+        when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
+\r
+        //when(nodes3.get(0).getSubNode()).thenReturn(new ArrayList<SubNode>());\r
+        when(nodes3.get(0).getSubNode()).thenReturn(subNodes);\r
+        when(subNodes.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes3.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("operating-mode"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("layer1"));\r
+        when(nodes3.get(0).getSubNode()).thenReturn(subNodes);\r
+        when(subNodes.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes3.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("operating-mode"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("layer3"));\r
+        when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        //getSourceVirtualRouterOfFlow()\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+        //getDestinationVirtualRouterOfFlow()\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("dst-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("dst-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+\r
+\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111112"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
+\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
+        when(virtualLinks.get(0).getSrcNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111113111"));\r
+        when(virtualLinks.get(0).getDestNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111131112"));\r
+        when(virtualNodes.get(0).getVirtualPort()).thenReturn(virtualPorts1);\r
+        when(virtualNodes.get(0).getVirtualPort()).thenReturn(virtualPorts2);\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+\r
+       when(operation.getOperationId()).thenReturn(new OperationId("11111111-1111-1111-1111-111111131112"));\r
+\r
+\r
+\r
+\r
+        actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
+    }\r
+\r
+\r
+    @org.junit.Test\r
+    public void testResolveActionsGoNormal() throws Exception {\r
+        //ResolveActions()\r
+        when(operation.getAction()).thenReturn(actions);\r
+        when(actions.get(0).getActionName()).thenReturn(new ActionName("go-through"));\r
+        when(actions.get(0).getParameterValues()).thenReturn(parametervalues);\r
+        when(parametervalues.getStringValue()).thenReturn(stringValue2);\r
+\r
+        //resolveGoThroughAction()\r
+        when(user.getObjects()).thenReturn(objects);\r
+        when(objects.getNode()).thenReturn(nodes4);\r
+        when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes4.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        //normal\r
+        when(nodes4.get(0).getNodeType()).thenReturn(new NodeType("aaa-group"));\r
+        //resolveGoThroughNormalGroupAction()\r
+        when(user.getObjects()).thenReturn(objects2);\r
+        when(objects2.getNode()).thenReturn(nodes4);\r
+        when(actions.get(0).getParameterValues()).thenReturn(parametervalues);\r
+        when(parametervalues.getStringValue()).thenReturn(stringValue2);\r
+\r
+        when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(nodes4.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
+\r
+        when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
+        when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
+\r
+\r
+\r
+\r
+        when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
+\r
+        when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vnode);\r
+        when(virtualResources.get(0).getVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn("11111111-1111-1111-1111-111111111111");\r
+\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+        //getSourceVirtualRouterOfFlow()\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+        //getDestinationVirtualRouterOfFlow()\r
+        when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
+        when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("dst-ip"));\r
+        when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
+        when(matchItemValue.getStringValue()).thenReturn(new String("dst-ip"));\r
+        when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
+        when(nodes.get(0).getProperty()).thenReturn(properties2);\r
+        when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
+        when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
+        when(propertyValues.getStringValue()).thenReturn(stringValue);\r
+        when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
+        when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
+        when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
+        when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
+        when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
+        when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
+        when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
+        when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
+\r
+\r
+        //actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
+\r
+\r
+    }\r
+\r
+\r
+}
\ No newline at end of file