delete all .class files
[nemo.git] / nemo-impl / src / test / java / org / opendaylight / nemo / intent / action / ActionResolverTest.java
1 /*\r
2  * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.nemo.intent.action;\r
10 \r
11 \r
12 import junit.framework.TestCase;\r
13 import org.junit.Assert;\r
14 import org.junit.Before;\r
15 import org.junit.Test;\r
16 import static org.mockito.Mockito.*;\r
17 import static org.junit.Assert.*;\r
18 \r
19 import  java.io.*;\r
20 //import  java.util.*;\r
21 \r
22 import org.opendaylight.controller.md.sal.binding.api.DataBroker;\r
23 import org.opendaylight.nemo.intent.IntentResolutionException;\r
24 import org.opendaylight.nemo.intent.IntentResolverUtils;\r
25 import org.opendaylight.nemo.intent.computation.VNComputationUnit;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPath;\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPathBuilder;\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPortBuilder;\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;\r
35 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
36 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
37 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
38 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
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.*;\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Connection;\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Flow;\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.operations.Operation;\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.connection.instance.Property;\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue;\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue;\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.operation.instance.Action;\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.ParameterValues;\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;\r
52 //import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue;\r
53 //import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.*;\r
54 //import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.ConnectionId;\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualLinks;\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualNodes;\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualPaths;\r
58 //import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;\r
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.flow.instance.MatchItem;\r
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.match.item.instance.MatchItemValue;\r
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;\r
62 \r
63 import org.slf4j.Logger;\r
64 import org.slf4j.LoggerFactory;\r
65 \r
66 import javax.lang.model.type.ArrayType;\r
67 //import java.sql.Connection;\r
68 import java.lang.reflect.Array;\r
69 import java.util.*;\r
70 import java.lang.*;\r
71 \r
72 \r
73 \r
74 /**\r
75  * Created by Thomas Liu on 2015/12/7.\r
76  */\r
77 public class ActionResolverTest extends TestCase {\r
78 \r
79     private ActionResolver actionResolverTest;\r
80     private DataBroker dataBroker;\r
81     private Map<UserId, VNComputationUnit> vnComputationUnits;\r
82 \r
83     private User user;\r
84     private Operation operation;\r
85     private Node node;\r
86     private Connection connection;\r
87     private Flow flow;\r
88     private VirtualNetwork virtualNetwork;\r
89     private  UserIntentVnMapping userIntentVnMapping;\r
90 \r
91     List<Action> actions;\r
92     private Action action;\r
93     List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue> parameterValues1;\r
94     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.IntValue intValue1;\r
95     List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue> parameterValues2;\r
96     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.IntValue intValue2;\r
97     private ParameterValues parametervalues;\r
98     private PropertyValues propertyValues;\r
99     private Property property,property2;\r
100     private List<Property> properties;\r
101     private List<IntentVnMappingResult> intentVnMappingResults;\r
102     private ConnectionId connectionId;\r
103     private List<VirtualResource> virtualResources;\r
104     private VirtualLinks virtualLink;\r
105     private List<VirtualLink> virtualLinks;\r
106     private VirtualResourceEntityId virtualResourceEntityId;\r
107 \r
108 \r
109     //deny\r
110     private List<Node> nodes;\r
111     private List<VirtualNode> nodes2;\r
112 \r
113     private List<VirtualNode> virtualNodes;\r
114     //private List<IntentVnMappingResult> intentVnMappingResults;\r
115     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects objects;\r
116     private VirtualNodes virtualNode;\r
117     private List<MatchItem> matchItem;\r
118     private MatchItemValue matchItemValue;\r
119     private NodeId nodeId;\r
120     private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property> properties2;\r
121     private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue> stringValue;\r
122 \r
123     //gothrough\r
124     private List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.operation.rev151010.action.instance.parameter.values.StringValue> stringValue2;\r
125     private List<Node> nodes3;\r
126     private List<Node> nodes4;\r
127     private org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects objects2;\r
128     private VirtualPaths virtualPath;\r
129     private List<VirtualPath> virtualPaths;\r
130     private List<SubNode> subNodes;\r
131     private List<VirtualPort> virtualPorts1,virtualPorts2;\r
132 \r
133 \r
134 \r
135     @org.junit.Before\r
136     public void setUp() throws Exception {\r
137         dataBroker = mock(DataBroker.class);\r
138         vnComputationUnits = new HashMap<UserId, VNComputationUnit>();\r
139         vnComputationUnits.put(mock(UserId.class), mock(VNComputationUnit.class));\r
140         actionResolverTest = new ActionResolver(dataBroker,vnComputationUnits);\r
141 \r
142 \r
143         user = mock(User.class);\r
144         operation = mock(Operation.class);\r
145         node = mock(Node.class);\r
146         connection = mock(Connection.class);\r
147         flow = mock(Flow.class);\r
148         virtualNetwork = mock(VirtualNetwork.class);\r
149         userIntentVnMapping = mock(UserIntentVnMapping.class);\r
150 \r
151 \r
152         actions = new ArrayList<Action>();\r
153         actions.add(mock(Action.class));\r
154         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
155         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
156         parametervalues = mock(ParameterValues.class);\r
157         property = mock(Property.class);\r
158         properties = new ArrayList<Property>(){{add(mock(Property.class));}};\r
159         propertyValues = mock(PropertyValues.class);\r
160         intentVnMappingResults = new ArrayList<IntentVnMappingResult>(){{add(mock(IntentVnMappingResult.class));}};\r
161         connectionId = mock(ConnectionId.class);\r
162         virtualResources = new ArrayList<VirtualResource>(){{add(mock(VirtualResource.class));}};\r
163         virtualLink = mock(VirtualLinks.class);\r
164         virtualLinks = new ArrayList<VirtualLink>(){{add(mock(VirtualLink.class));}};\r
165         virtualResourceEntityId = mock(VirtualResourceEntityId.class);\r
166 \r
167         //deny\r
168         nodes = new ArrayList<Node>(){{add(mock(Node.class));}};\r
169         //nodes2 = new ArrayList<VirtualNode>(){{add(mock(VirtualNode.class));}};\r
170         virtualNodes = new ArrayList<VirtualNode>(){{add(mock(VirtualNode.class));}};\r
171         //intentVnMappingResults = new ArrayList<IntentVnMappingResult>(){{add(mock(IntentVnMappingResult.class));}};\r
172         objects = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects.class);\r
173         virtualNode = mock(VirtualNodes.class);\r
174         matchItem = new ArrayList<MatchItem>(){{add(mock(MatchItem.class));}};\r
175         matchItemValue = mock(MatchItemValue.class);\r
176         nodeId = mock(NodeId.class);\r
177         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
178         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
179 \r
180 \r
181         //gothrough\r
182         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
183         nodes3 = new ArrayList<Node>(){{add(mock(Node.class));}};\r
184         nodes4 = new ArrayList<Node>(){{add(mock(Node.class));}};\r
185         objects2 = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects.class);\r
186         virtualPath = mock(VirtualPaths.class);\r
187         virtualPaths = new ArrayList<VirtualPath>(){{add(mock(VirtualPath.class));}};\r
188         subNodes = new ArrayList<SubNode>(){{add(mock(SubNode.class));}};\r
189         virtualPorts1 = new ArrayList<VirtualPort>();\r
190         virtualPorts2 = new ArrayList<VirtualPort>();\r
191 \r
192     }\r
193 \r
194     @org.junit.Test\r
195     public void testResolveActions() throws Exception {\r
196         actionResolverTest.resolveActions(user,operation,node,virtualNetwork, userIntentVnMapping);\r
197 \r
198     }\r
199 \r
200     @org.junit.Test\r
201     public void testResolveActions1() throws Exception {\r
202         when(operation.getAction()).thenReturn(actions);\r
203         when(actions.get(0).getActionName()).thenReturn(new ActionName("qos-bandwidth"));\r
204         action = actions.get(0);\r
205         when(action.getParameterValues()).thenReturn(parametervalues);\r
206         when(parametervalues.getIntValue()).thenReturn(parameterValues1);\r
207         intValue1 = parameterValues1.get(0);\r
208         when(intValue1.getValue()).thenReturn(new Long(1));\r
209         when(connection.getProperty()).thenReturn(properties);\r
210         when(properties.get(0).getPropertyName()).thenReturn(new PropertyName("bandwidth"));\r
211         property2 = properties.get(0);\r
212         when(property2.getPropertyValues()).thenReturn(propertyValues);\r
213         when(propertyValues.getIntValue()).thenReturn(parameterValues2);\r
214         intValue2 = parameterValues2.get(0);\r
215         when(intValue2.getValue()).thenReturn(new Long(2));\r
216         when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
217         when(connection.getConnectionId()).thenReturn(connectionId);\r
218         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId(connectionId));\r
219         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
220         when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLink);\r
221         when(virtualLink.getVirtualLink()).thenReturn(virtualLinks);\r
222         when(virtualResources.get(0).getVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
223         when(virtualResourceEntityId.getValue()).thenReturn("11111111-1111-1111-1111-111111111111");\r
224         when(virtualLinks.get(0).getLinkId()).thenReturn(new VirtualLinkId("11111111-1111-1111-1111-111111111111"));\r
225         actionResolverTest.resolveActions(user,operation,connection,virtualNetwork, userIntentVnMapping);\r
226 \r
227     }\r
228 \r
229     @org.junit.Test\r
230     public void testResolveActionsDeny() throws Exception {\r
231 \r
232         //deny\r
233         when(operation.getAction()).thenReturn(actions);\r
234         when(actions.get(0).getActionName()).thenReturn(new ActionName("deny"));\r
235         when(user.getObjects()).thenReturn(objects);\r
236         when(objects.getNode()).thenReturn(nodes);\r
237         when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
238         when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
239         when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
240         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
241         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
242         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
243         when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
244         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
245         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
246         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
247         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
248         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
249         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
250         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
251         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
252         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
253         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
254         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
255         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
256         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
257         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
258         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
259 \r
260         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
261         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
262         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
263         when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
264         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
265         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
266         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
267         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
268         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
269         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
270         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
271         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
272         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
273         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
274         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
275         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
276         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
277         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
278         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
279 \r
280         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
281         when(operation.getOperationId()).thenReturn(new OperationId("11111111-1111-1111-1111-111111111111"));\r
282         //actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
283 \r
284 \r
285 \r
286 \r
287 \r
288 \r
289 \r
290     }\r
291     /*@org.junit.Test\r
292     public void testResolveActionsAllow() throws Exception\r
293     {\r
294 \r
295         //allow\r
296         when(operation.getAction()).thenReturn(actions);\r
297         when(actions.get(0).getActionName()).thenReturn(new ActionName("allow"));\r
298         when(user.getObjects()).thenReturn(objects);\r
299         when(objects.getNode()).thenReturn(nodes);\r
300         when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
301         when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
302         when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
303 \r
304 \r
305 \r
306         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
307         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
308         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
309         when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
310         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
311         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
312         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
313         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
314         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
315         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
316         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
317         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
318         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
319         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
320         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
321         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
322         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
323         System.out.println("1");\r
324         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
325         System.out.println("2");\r
326         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
327         System.out.println("3");\r
328         //when(flow.getFlowId()).thenReturn(new FlowId("11111111-1111-1111-1111-111111111111"));\r
329 \r
330 \r
331 \r
332         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
333         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("dst-ip"));\r
334         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
335         when(matchItemValue.getStringValue()).thenReturn(new String("dst-ip"));\r
336         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
337         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
338         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
339         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
340         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
341         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
342         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
343         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
344         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
345         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
346         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
347         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
348         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
349         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
350         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
351         actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
352 \r
353 \r
354     }*/\r
355 \r
356     @org.junit.Test\r
357     public void testResolveActionsGoChain() throws Exception {\r
358         //ResolveActions()\r
359         when(operation.getAction()).thenReturn(actions);\r
360         when(actions.get(0).getActionName()).thenReturn(new ActionName("go-through"));\r
361         when(actions.get(0).getParameterValues()).thenReturn(parametervalues);\r
362         when(parametervalues.getStringValue()).thenReturn(stringValue2);\r
363 \r
364         //resolveGoThroughAction()\r
365         when(user.getObjects()).thenReturn(objects);\r
366         when(objects.getNode()).thenReturn(nodes3);\r
367         when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
368         when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
369 \r
370         //chaingroup\r
371         when(nodes3.get(0).getNodeType()).thenReturn(new NodeType("chain-group"));\r
372         //resolveGoThroughChainGroupAction()\r
373         when(user.getObjects()).thenReturn(objects2);\r
374         when(objects2.getNode()).thenReturn(nodes3);\r
375         when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
376         when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
377         when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLink);\r
378         when(virtualLink.getVirtualLink()).thenReturn(virtualLinks);\r
379         when(virtualNetwork.getVirtualPaths()).thenReturn(virtualPath);\r
380         when(virtualPath.getVirtualPath()).thenReturn(virtualPaths);\r
381         when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
382 \r
383         //when(nodes3.get(0).getSubNode()).thenReturn(new ArrayList<SubNode>());\r
384         when(nodes3.get(0).getSubNode()).thenReturn(subNodes);\r
385         when(subNodes.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
386         when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
387         when(nodes3.get(0).getProperty()).thenReturn(properties2);\r
388         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("operating-mode"));\r
389         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
390         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
391         when(stringValue.get(0).getValue()).thenReturn(new String("layer1"));\r
392         when(nodes3.get(0).getSubNode()).thenReturn(subNodes);\r
393         when(subNodes.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
394         when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
395         when(nodes3.get(0).getProperty()).thenReturn(properties2);\r
396         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("operating-mode"));\r
397         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
398         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
399         when(stringValue.get(0).getValue()).thenReturn(new String("layer3"));\r
400         when(nodes3.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
401         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
402 \r
403         //getSourceVirtualRouterOfFlow()\r
404         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
405         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
406         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
407         when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
408         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
409         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
410         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
411         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
412         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
413         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
414         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
415         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
416         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
417         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
418         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
419         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
420         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
421         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
422         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
423 \r
424         //getDestinationVirtualRouterOfFlow()\r
425         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
426         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("dst-ip"));\r
427         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
428         when(matchItemValue.getStringValue()).thenReturn(new String("dst-ip"));\r
429         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
430         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
431         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
432         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
433         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
434         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
435         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
436         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
437         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
438         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
439         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
440         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
441         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
442         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
443         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
444 \r
445 \r
446         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
447 \r
448 \r
449         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
450         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
451         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
452 \r
453         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
454         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111112"));\r
455         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
456 \r
457         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
458         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
459         when(virtualLinks.get(0).getSrcNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111113111"));\r
460         when(virtualLinks.get(0).getDestNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111131112"));\r
461         when(virtualNodes.get(0).getVirtualPort()).thenReturn(virtualPorts1);\r
462         when(virtualNodes.get(0).getVirtualPort()).thenReturn(virtualPorts2);\r
463         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
464         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
465         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111112"));\r
466         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
467 \r
468 \r
469        when(operation.getOperationId()).thenReturn(new OperationId("11111111-1111-1111-1111-111111131112"));\r
470 \r
471 \r
472 \r
473 \r
474         actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
475     }\r
476 \r
477 \r
478     @org.junit.Test\r
479     public void testResolveActionsGoNormal() throws Exception {\r
480         //ResolveActions()\r
481         when(operation.getAction()).thenReturn(actions);\r
482         when(actions.get(0).getActionName()).thenReturn(new ActionName("go-through"));\r
483         when(actions.get(0).getParameterValues()).thenReturn(parametervalues);\r
484         when(parametervalues.getStringValue()).thenReturn(stringValue2);\r
485 \r
486         //resolveGoThroughAction()\r
487         when(user.getObjects()).thenReturn(objects);\r
488         when(objects.getNode()).thenReturn(nodes4);\r
489         when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
490         when(nodes4.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
491 \r
492         //normal\r
493         when(nodes4.get(0).getNodeType()).thenReturn(new NodeType("aaa-group"));\r
494         //resolveGoThroughNormalGroupAction()\r
495         when(user.getObjects()).thenReturn(objects2);\r
496         when(objects2.getNode()).thenReturn(nodes4);\r
497         when(actions.get(0).getParameterValues()).thenReturn(parametervalues);\r
498         when(parametervalues.getStringValue()).thenReturn(stringValue2);\r
499 \r
500         when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
501         when(nodes4.get(0).getNodeId()).thenReturn(new NodeId("11111111-1111-1111-1111-111111111111"));\r
502 \r
503         when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNode);\r
504         when(virtualNode.getVirtualNode()).thenReturn(virtualNodes);\r
505 \r
506 \r
507 \r
508 \r
509         when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);\r
510 \r
511         when(stringValue2.get(0).getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
512         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
513         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
514         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vnode);\r
515         when(virtualResources.get(0).getVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
516         when(virtualResourceEntityId.getValue()).thenReturn("11111111-1111-1111-1111-111111111111");\r
517 \r
518         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
519         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
520 \r
521         //getSourceVirtualRouterOfFlow()\r
522         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
523         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("src-ip"));\r
524         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
525         when(matchItemValue.getStringValue()).thenReturn(new String("src-ip"));\r
526         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
527         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
528         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
529         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
530         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
531         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
532         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
533         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
534         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
535         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
536         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
537         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
538         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
539         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
540         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
541 \r
542         //getDestinationVirtualRouterOfFlow()\r
543         when(flow.getMatchItem()).thenReturn(matchItem);//matchItem\r
544         when(matchItem.get(0).getMatchItemName()).thenReturn(new MatchItemName("dst-ip"));\r
545         when(matchItem.get(0).getMatchItemValue()).thenReturn(matchItemValue);//matchItemValue\r
546         when(matchItemValue.getStringValue()).thenReturn(new String("dst-ip"));\r
547         when(nodes.get(0).getNodeType()).thenReturn(new NodeType("l2-group"));\r
548         when(nodes.get(0).getProperty()).thenReturn(properties2);\r
549         when(properties2.get(0).getPropertyName()).thenReturn(new PropertyName("ip-prefix"));\r
550         when(properties2.get(0).getPropertyValues()).thenReturn(propertyValues);\r
551         when(propertyValues.getStringValue()).thenReturn(stringValue);\r
552         when(stringValue.get(0).getValue()).thenReturn(new String("src-ip"));\r
553         when(nodes.get(0).getNodeId()).thenReturn(nodeId);\r
554         when(nodeId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
555         when(intentVnMappingResults.get(0).getIntentId()).thenReturn(new IntentId("11111111-1111-1111-1111-111111111111"));\r
556         when(intentVnMappingResults.get(0).getVirtualResource()).thenReturn(virtualResources);\r
557         when(virtualResources.get(0).getVirtualResourceType()).thenReturn(VirtualResource.VirtualResourceType.Vport);\r
558         when(virtualResources.get(0).getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);\r
559         when(virtualResourceEntityId.getValue()).thenReturn(new String("11111111-1111-1111-1111-111111111111"));\r
560         when(virtualNodes.get(0).getNodeId()).thenReturn(new VirtualNodeId("11111111-1111-1111-1111-111111111111"));\r
561         when(virtualNodes.get(0).getNodeType()).thenReturn(VirtualNode.NodeType.Vrouter);\r
562 \r
563 \r
564         //actionResolverTest.resolveActions(user,operation,flow,virtualNetwork, userIntentVnMapping);\r
565 \r
566 \r
567     }\r
568 \r
569 \r
570 }