--- /dev/null
+/*\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