2 * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
\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
8 package org.opendaylight.nemo.intent;
\r
10 import junit.framework.TestCase;
\r
11 import org.junit.Assert;
\r
12 import org.junit.Before;
\r
13 import org.junit.Test;
\r
15 import static org.junit.Assert.*;
\r
16 import com.google.common.base.Optional;
\r
17 import com.google.common.util.concurrent.CheckedFuture;
\r
18 import org.junit.runner.RunWith;
\r
19 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
\r
20 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
\r
21 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalPortId;
\r
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpAddress;
\r
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.IpPrefix;
\r
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Prefix;
\r
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.host.instance.IpAddresses;
\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualNodes;
\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalNodeId;
\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNetwork;
\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.attribute.instance.AttributeValue;
\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.attribute.instance.AttributeValueBuilder;
\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalHosts;
\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.hosts.PhysicalHost;
\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;
\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.arps.VirtualArp;
\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.arps.VirtualArpBuilder;
\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;
\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNodeBuilder;
\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPath;
\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.paths.VirtualPathBuilder;
\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.*;
\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.port.instance.*;
\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.port.instance.PhysicalResourceRequirement;
\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.port.instance.PhysicalResourceRequirementBuilder;
\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.intent.vn.mapping.results.UserIntentVnMapping;
\r
49 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
50 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
51 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
52 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
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.IntentId;
\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeType;
\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualArps;
\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.PropertyName;
\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;
\r
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.objects.Node;
\r
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.user.intent.Objects;
\r
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.intent.rev151010.users.User;
\r
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.Property;
\r
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.node.instance.SubNode;
\r
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.property.values.StringValue;
\r
64 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
\r
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualPaths;
\r
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;
\r
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualLinks;
\r
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.NodeId;
\r
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.object.rev151010.property.instance.PropertyValues;
\r
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualResourceEntityId;
\r
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
\r
72 import org.slf4j.Logger;
\r
73 import org.slf4j.LoggerFactory;
\r
74 import org.powermock.api.mockito.PowerMockito;
\r
75 import org.powermock.api.support.membermodification.MemberMatcher;
\r
76 import org.powermock.api.support.membermodification.MemberModifier;
\r
77 import org.powermock.core.classloader.annotations.PrepareForTest;
\r
78 import org.powermock.modules.junit4.PowerMockRunner;
\r
80 import java.lang.reflect.Method;
\r
82 import java.util.concurrent.ExecutionException;
\r
84 import static org.junit.Assert.assertTrue;
\r
85 import static org.mockito.Mockito.*;
\r
87 * Created by zhangmeng on 2015/12/22.
\r
89 @RunWith(PowerMockRunner.class)
\r
90 @PrepareForTest({NodeMapper.class,IntentResolverUtils.class})
\r
91 public class NodeMapperTest extends TestCase {
\r
92 private DataBroker dataBroker ;
\r
93 private NodeMapper nodeMapper ;
\r
95 public void setUp() throws Exception {
\r
96 dataBroker = mock(DataBroker.class);
\r
97 nodeMapper = new NodeMapper(dataBroker);
\r
101 public void testResolveNode() throws Exception {
\r
102 User user = mock(User.class);
\r
103 Node node = mock(Node.class);
\r
104 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
105 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
106 NodeType nodeType = mock(NodeType.class);
\r
108 when(node.getNodeType())
\r
109 .thenReturn(new NodeType("host"));
\r
110 //get into method "resolveHost" args(user,node,virtualNetwork,userIntentVnMapping)
\r
111 VirtualNodes virtualNodes = mock(VirtualNodes.class);
\r
112 VirtualNode virtualNode = mock(VirtualNode.class);
\r
113 IpAddress ipAddress = mock(IpAddress.class);
\r
114 IpAddresses ipAddresses = mock(IpAddresses.class);
\r
115 MacAddress macAddress = mock(MacAddress.class);
\r
116 PhysicalPortId physicalPortId = mock(PhysicalPortId.class);
\r
117 ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
\r
118 PhysicalNodeId physicalNodeId = mock(PhysicalNodeId.class);
\r
119 PhysicalHost physicalHost = mock(PhysicalHost.class);
\r
120 IntentVnMappingResult intentVnMappingResult = mock(IntentVnMappingResult.class);
\r
121 PhysicalHosts physicalHosts_resolveHost = mock(PhysicalHosts.class);
\r
122 VirtualArps virtualArps = mock(VirtualArps.class);
\r
123 NodeId nodeId = mock(NodeId.class);
\r
124 Optional<PhysicalHosts> result_resolveHost = Optional.of(physicalHosts_resolveHost);
\r
125 CheckedFuture checkedFuture = mock(CheckedFuture.class);
\r
126 List<PhysicalHost> physicalHostList_resolveHost = new ArrayList<PhysicalHost>();
\r
127 List<VirtualNode> virtualNodeList_resolveHost = new ArrayList<VirtualNode>();
\r
128 List<IpAddress> ipAddressList = new ArrayList<IpAddress>();
\r
129 List<IntentVnMappingResult> intentVnMappingResultList = new ArrayList<IntentVnMappingResult>();
\r
131 // virtualNodeList_resolveHost.add(virtualNode);
\r
132 ipAddressList.add(ipAddress);
\r
134 when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
\r
135 when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);
\r
136 when(checkedFuture.get()).thenReturn(result_resolveHost);
\r
137 when(physicalHosts_resolveHost.getPhysicalHost()).thenReturn(physicalHostList_resolveHost);
\r
139 PowerMockito.mockStatic(IntentResolverUtils.class);
\r
140 PowerMockito.when(IntentResolverUtils.getPhysicalHost(physicalHostList_resolveHost, node)).thenReturn(physicalHost);
\r
141 Assert.assertTrue(physicalHost != null);
\r
142 when(physicalHost.getNodeId()).thenReturn(physicalNodeId);
\r
143 when(physicalNodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
\r
144 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes);
\r
145 when(virtualNodes.getVirtualNode()).thenReturn(virtualNodeList_resolveHost);
\r
146 when(virtualNetwork.getVirtualArps()).thenReturn(virtualArps);
\r
147 when(virtualArps.getVirtualArp()).thenReturn(new ArrayList<VirtualArp>());
\r
148 when(physicalHost.getMacAddress()).thenReturn(macAddress);
\r
149 when(physicalHost.getPortId()).thenReturn(physicalPortId);
\r
150 when(physicalPortId.getValue()).thenReturn(new String("portid"));
\r
151 when(physicalHost.getIpAddresses()).thenReturn(ipAddresses);
\r
152 when(ipAddresses.getIpAddress()).thenReturn(ipAddressList);
\r
153 when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResultList);
\r
154 when(node.getNodeId()).thenReturn(nodeId);
\r
155 when(nodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
\r
157 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
158 verify(nodeId).getValue();
\r
162 public void testResolveNode1() throws Exception {
\r
163 User user = mock(User.class);
\r
164 Node node = mock(Node.class);
\r
165 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
166 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
167 NodeType nodeType = mock(NodeType.class);
\r
169 Node node1 = mock(Node.class);
\r
170 Node node2 = mock(Node.class);
\r
171 SubNode subNode = mock(SubNode.class);
\r
172 SubNode subNode1 = mock(SubNode.class);
\r
173 NodeId nodeId = mock(NodeId.class);
\r
174 NodeId node1_id = mock(NodeId.class);
\r
175 NodeId node2_id = mock(NodeId.class);
\r
176 NodeId subnodeId = mock(NodeId.class);
\r
177 NodeId subnodeId1 = mock(NodeId.class);
\r
178 VirtualNode virtualNode = mock(VirtualNode.class);
\r
179 VirtualNode virtualNode1 = mock(VirtualNode.class);
\r
180 Property property = mock(Property.class);
\r
181 VirtualNodes virtualNodes_temp = mock(VirtualNodes.class);
\r
182 VirtualResource virtualResource = mock(VirtualResource.class);
\r
183 IntentVnMappingResult intentVnMappingResult = mock(IntentVnMappingResult.class);
\r
184 VirtualResourceEntityId virtualResourceEntityId = mock(VirtualResourceEntityId.class);
\r
185 Property locationProperty = mock(Property.class);
\r
186 Property ipPrefixProperty = mock(Property.class);
\r
187 PropertyValues propertyValues = mock(PropertyValues.class);
\r
188 VirtualNodeId virtualNodeId = mock(VirtualNodeId.class);
\r
189 VirtualLinks virtualLinks_temp = mock(VirtualLinks.class);
\r
190 VirtualPort virtualPort = mock(VirtualPort.class);
\r
191 StringValue stringValue = mock(StringValue.class);
\r
192 Objects objects = mock(Objects.class);
\r
193 List<SubNode> subNodes = new ArrayList<SubNode>();
\r
194 List<Node> nodeList = new ArrayList<Node>();
\r
195 List<VirtualResource> virtualResourceList = new ArrayList<VirtualResource>();
\r
196 List<Property> propertyList = new ArrayList<Property>();
\r
197 List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>();
\r
198 List<IntentVnMappingResult> intentVnMappingResultList = new ArrayList<IntentVnMappingResult>();
\r
199 List<StringValue> stringValueList = new ArrayList<StringValue>();
\r
200 List<VirtualLink> virtualLinks = new ArrayList<VirtualLink>();
\r
201 List<VirtualPort> virtualPortList = new ArrayList<VirtualPort>();
\r
203 subNodes.add(subNode);
\r
204 subNodes.add(subNode1);
\r
205 stringValueList.add(stringValue);
\r
206 virtualResourceList.add(virtualResource);
\r
207 Assert.assertTrue(subNodes.size() == 2);
\r
208 Assert.assertTrue(subNodes.get(0) == subNode && subNodes.get(1) == subNode1);
\r
210 when(node.getNodeType()).thenReturn(new NodeType("l2-group"));
\r
211 when(user.getObjects()).thenReturn(objects);
\r
212 when(objects.getNode()).thenReturn(nodeList);
\r
213 when(node.getSubNode()).thenReturn(subNodes);
\r
214 when(node.getNodeId()).thenReturn(nodeId);
\r
215 when(node.getProperty()).thenReturn(propertyList);
\r
216 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes_temp);
\r
217 when(virtualNodes_temp.getVirtualNode()).thenReturn(virtualNodes);
\r
218 when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResultList);
\r
219 //get into for circle subnodes
\r
220 when(subNode.getNodeId()).thenReturn(subnodeId);
\r
221 when(subNode1.getNodeId()).thenReturn(subnodeId1);
\r
223 PowerMockito.mockStatic(IntentResolverUtils.class);
\r
224 PowerMockito.when(IntentResolverUtils.getNode(nodeList, subNode.getNodeId())).thenReturn(node1);
\r
225 PowerMockito.when(IntentResolverUtils.getNode(nodeList, subNode1.getNodeId())).thenReturn(node2);
\r
226 when(node1.getNodeType()).thenReturn(new NodeType("test1"));
\r
227 when(node2.getNodeType()).thenReturn(new NodeType("test2"));
\r
228 when(node1.getNodeId()).thenReturn(node1_id);
\r
229 when(node2.getNodeId()).thenReturn(node2_id);
\r
230 when(node1_id.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
\r
231 when(node2_id.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
\r
232 PowerMockito.when(IntentResolverUtils.getIntentVnMappingResult(intentVnMappingResultList,
\r
233 new IntentId(node1.getNodeId().getValue())))
\r
234 .thenReturn(intentVnMappingResult);
\r
235 PowerMockito.when(IntentResolverUtils.getIntentVnMappingResult(intentVnMappingResultList,
\r
236 new IntentId(node2.getNodeId().getValue()))).
\r
237 thenReturn(intentVnMappingResult);
\r
238 when(intentVnMappingResult.getVirtualResource()).thenReturn(virtualResourceList);
\r
239 when(virtualResource.getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);
\r
240 when(virtualResourceEntityId.getValue()).thenReturn(new String("00001111-1111-0000-0000-000011112222"));
\r
241 PowerMockito.when(IntentResolverUtils.getVirtualNode(virtualNodes,
\r
242 new VirtualNodeId(intentVnMappingResult.getVirtualResource().get(0).getParentVirtualResourceEntityId().getValue())))
\r
243 .thenReturn(virtualNode)
\r
244 .thenReturn(virtualNode1);
\r
245 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("location")))
\r
246 .thenReturn(locationProperty);
\r
247 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("ip-prefix")))
\r
248 .thenReturn(locationProperty);//use locationProperty instead of ipPrefixProperty
\r
249 when(locationProperty.getPropertyValues()).thenReturn(propertyValues);
\r
250 when(propertyValues.getStringValue()).thenReturn(stringValueList);
\r
251 when(stringValue.getValue())
\r
252 .thenReturn(new String("1"))
\r
253 .thenReturn(new String("192.168.1.1/24"));
\r
255 when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLinks_temp);
\r
256 when(virtualLinks_temp.getVirtualLink()).thenReturn(virtualLinks);
\r
257 when(virtualNode.getVirtualPort()).thenReturn(virtualPortList);
\r
258 when(virtualNode.getNodeId()).thenReturn(virtualNodeId);
\r
259 when(virtualNode1.getNodeId()).thenReturn(virtualNodeId);
\r
260 when(virtualNode1.getVirtualPort()).thenReturn(virtualPortList);
\r
261 when(nodeId.getValue()).thenReturn(new String("00001111-1111-0000-0000-000011112222"));
\r
264 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
265 verify(stringValue,times(2)).getValue();
\r
269 public void testResolveNode2() throws Exception {
\r
270 User user = mock(User.class);
\r
271 Node node = mock(Node.class);
\r
272 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
273 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
275 when(node.getNodeType()).thenReturn(new NodeType("l3-group"));
\r
277 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
281 public void testResolveNode3() throws Exception {
\r
282 User user = mock(User.class);
\r
283 Node node = mock(Node.class);
\r
284 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
285 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
287 NodeId nodeId = mock(NodeId.class);
\r
288 Property property = mock(Property.class);
\r
289 Property property1 = mock(Property.class);
\r
290 StringValue stringValue = mock(StringValue.class);
\r
291 PhysicalNodeId physicalNodeId = mock(PhysicalNodeId.class);
\r
292 VirtualNodes virtualNodes_temp = mock(VirtualNodes.class);
\r
293 PropertyValues propertyValues = mock(PropertyValues.class);
\r
294 List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>();
\r
295 List<StringValue> stringValueList = new ArrayList<StringValue>();
\r
296 List<IntentVnMappingResult> intentVnMappingResultList = new ArrayList<IntentVnMappingResult>();
\r
298 stringValueList.add(stringValue);
\r
300 PowerMockito.mockStatic(IntentResolverUtils.class);
\r
301 PowerMockito.when(IntentResolverUtils.checkExternalLayer3Group(node))
\r
304 when(node.getNodeType()).thenReturn(new NodeType("ext-group"));
\r
306 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
308 when(node.getProperty()).thenReturn(new ArrayList<Property>());
\r
309 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("location")))
\r
310 .thenReturn(property);
\r
311 PowerMockito.when(IntentResolverUtils.generatePhysicalNodeIdFromNodeLocationProperty(property))
\r
312 .thenReturn(physicalNodeId);
\r
313 when(physicalNodeId.getValue()).thenReturn(new String("test"));
\r
314 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes_temp);
\r
315 when(virtualNodes_temp.getVirtualNode()).thenReturn(virtualNodes);
\r
316 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("ip-prefix")))
\r
317 .thenReturn(property1);
\r
318 when(property1.getPropertyValues()).thenReturn(propertyValues);
\r
319 when(propertyValues.getStringValue()).thenReturn(stringValueList);
\r
320 when(stringValue.getValue())
\r
321 .thenReturn("192.168.1.1/24")
\r
322 .thenReturn("Test");
\r
323 when(property.getPropertyValues()).thenReturn(propertyValues);
\r
324 when(node.getNodeId()).thenReturn(nodeId);
\r
325 when(nodeId.getValue()).thenReturn(new String("00001111-1111-0000-0000-000011112222"));
\r
326 when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResultList);
\r
327 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
328 verify(stringValue,times(2)).getValue();
\r
331 public void testResolveNode4() throws Exception {
\r
332 User user = mock(User.class);
\r
333 Node node = mock(Node.class);
\r
334 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
335 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
337 SubNode subNode = mock(SubNode.class);
\r
338 SubNode subNode1 = mock(SubNode.class);
\r
339 NodeId nodeId = mock(NodeId.class);
\r
340 Objects objects = mock(Objects.class);
\r
341 IntentVnMappingResult intentVnMappingResult = mock(IntentVnMappingResult.class);
\r
342 IntentVnMappingResult intentVnMappingResult_elseif = mock(IntentVnMappingResult.class);
\r
343 VirtualResource virtualResource = mock(VirtualResource.class);
\r
344 VirtualLink virtualLink = mock(VirtualLink.class);
\r
345 VirtualNode virtualNode = mock(VirtualNode.class);
\r
346 VirtualNodes virtualNodes_temp = mock(VirtualNodes.class);
\r
347 VirtualPaths virtualPaths_temp = mock(VirtualPaths.class);
\r
348 VirtualLinks virtualLinks_temp = mock(VirtualLinks.class);
\r
349 VirtualResourceEntityId virtualResourceEntityId = mock(VirtualResourceEntityId.class);
\r
350 List<Node> nodes = new ArrayList<Node>();
\r
351 List<SubNode> subNodes = new ArrayList<SubNode>();
\r
352 List<IntentVnMappingResult> intentVnMappingResults = new ArrayList<IntentVnMappingResult>();
\r
353 List<VirtualResource> virtualResourceList = new ArrayList<VirtualResource>();
\r
354 List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>();
\r
355 List<VirtualLink> virtualLinks = new ArrayList<VirtualLink>();
\r
356 List<VirtualPath> virtualPaths = new ArrayList<VirtualPath>();
\r
357 List<VirtualPort> virtualPortList = new ArrayList<VirtualPort>();
\r
359 virtualResourceList.add(virtualResource);
\r
361 when(node.getNodeType()).thenReturn(new NodeType("chain-group"));
\r
362 when(node.getSubNode()).thenReturn(subNodes);
\r
363 when(node.getNodeId()).thenReturn(nodeId);
\r
366 Assert.assertTrue(subNodes.isEmpty());
\r
367 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
370 subNodes.add(subNode);
\r
372 when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResults);
\r
374 when(subNode.getNodeId()).thenReturn(nodeId);
\r
375 when(subNode1.getNodeId()).thenReturn(nodeId);
\r
376 when(nodeId.getValue()).thenReturn("00001111-0000-0000-0000-000011112222");
\r
377 PowerMockito.mockStatic(IntentResolverUtils.class);
\r
378 PowerMockito.when(IntentResolverUtils.getIntentVnMappingResult(intentVnMappingResults, new IntentId(subNode.getNodeId().getValue())))
\r
379 .thenReturn(intentVnMappingResult);
\r
380 when(intentVnMappingResult.getVirtualResource()).thenReturn(virtualResourceList);
\r
381 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
382 verify(node).getNodeId();
\r
384 subNodes.add(subNode1);
\r
385 PowerMockito.when(IntentResolverUtils.sortSubNodes(subNodes)).thenReturn(subNodes);
\r
386 when(user.getObjects()).thenReturn(objects);
\r
387 when(objects.getNode()).thenReturn(nodes);
\r
388 // Iterator<SubNode> iterator = subNodes.iterator();
\r
389 // Assert.assertTrue(subNode == iterator.next());
\r
390 // Assert.assertTrue(subNode1 == iterator.next());
\r
391 // PowerMockito.doNothing().when(IntentResolverUtils.class):IntentResolverUtils.checkAllLayer2OperatingMode(subNodes, nodes);
\r
392 PowerMockito.when(IntentResolverUtils.checkAllLayer2OperatingMode(subNodes, nodes))
\r
394 .thenReturn(false);
\r
395 PowerMockito.when(IntentResolverUtils.checkAllLayer3OperatingMode(subNodes, nodes))
\r
399 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
400 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
401 verify(node, times(3)).getNodeId();
\r
403 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes_temp);
\r
404 when(virtualNodes_temp.getVirtualNode()).thenReturn(virtualNodes);
\r
405 when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLinks_temp);
\r
406 when(virtualLinks_temp.getVirtualLink()).thenReturn(virtualLinks);
\r
407 when(virtualNetwork.getVirtualPaths()).thenReturn(virtualPaths_temp);
\r
408 when(virtualPaths_temp.getVirtualPath()).thenReturn(virtualPaths);
\r
409 PowerMockito.when(IntentResolverUtils.getIntentVnMappingResult(intentVnMappingResults, new IntentId(subNode1.getNodeId().getValue())))
\r
410 .thenReturn(intentVnMappingResult);
\r
411 when(virtualResource.getParentVirtualResourceEntityId()).thenReturn(virtualResourceEntityId);
\r
412 when(virtualResourceEntityId.getValue()).thenReturn(new String("00001111-1111-0000-0000-000011112222"));
\r
413 PowerMockito.when(IntentResolverUtils.getVirtualLink(any(List.class), any(VirtualNodeId.class), any(VirtualNodeId.class)))
\r
415 PowerMockito.when(IntentResolverUtils.getVirtualNode(any(List.class), any(VirtualNodeId.class)))
\r
416 .thenReturn(virtualNode);
\r
417 when(virtualNode.getVirtualPort()).thenReturn(virtualPortList);
\r
419 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
424 public void testResolveNode5() throws Exception {
\r
425 User user = mock(User.class);
\r
426 Node node = mock(Node.class);
\r
427 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
428 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
430 NodeId nodeId = mock(NodeId.class);
\r
431 Property locationProperty = mock(Property.class);
\r
432 Property operatingModeProperty = mock(Property.class);
\r
433 StringValue stringValue = mock(StringValue.class);
\r
434 PhysicalNodeId physicalNodeId = mock(PhysicalNodeId.class);
\r
435 PropertyValues propertyValues = mock(PropertyValues.class);
\r
436 VirtualNodes virtualNodes_temp = mock(VirtualNodes.class);
\r
437 List<StringValue> stringValueList = new ArrayList<StringValue>();
\r
438 List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>();
\r
439 List<IntentVnMappingResult> intentVnMappingResultList = new ArrayList<IntentVnMappingResult>();
\r
441 stringValueList.add(stringValue);
\r
443 when(node.getNodeType())
\r
444 .thenReturn(new NodeType("fw"))
\r
445 .thenReturn(new NodeType("lb"))
\r
446 .thenReturn(new NodeType("cache"));
\r
448 when(node.getProperty()).thenReturn(new ArrayList<Property>());
\r
449 PowerMockito.mockStatic(IntentResolverUtils.class);
\r
450 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("location")))
\r
451 .thenReturn(locationProperty);
\r
452 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("operating-mode")))
\r
453 .thenReturn(operatingModeProperty);
\r
454 PowerMockito.when(IntentResolverUtils.generatePhysicalNodeIdFromNodeLocationProperty(locationProperty))
\r
455 .thenReturn(physicalNodeId);
\r
456 when(physicalNodeId.getValue()).thenReturn(new String("test"));
\r
457 when(operatingModeProperty.getPropertyValues()).thenReturn(propertyValues);
\r
458 when(propertyValues.getStringValue()).thenReturn(stringValueList);
\r
459 when(stringValue.getValue())
\r
460 .thenReturn(new String("layer3"))
\r
461 .thenReturn(new String("layer2"));
\r
462 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes_temp);
\r
463 when(virtualNodes_temp.getVirtualNode()).thenReturn(virtualNodes);
\r
464 when(locationProperty.getPropertyValues()).thenReturn(propertyValues);
\r
465 when(node.getNodeId()).thenReturn(nodeId);
\r
466 when(nodeId.getValue()).thenReturn(new String("00001111-1111-0000-0000-000011112222"));
\r
467 when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResultList);
\r
469 nodeMapper.resolveNode(user, node, virtualNetwork, userIntentVnMapping);
\r
470 verify(node).getNodeId();
\r
473 public void testResolveExternalLayer2Group() throws Exception {
\r
474 Class<NodeMapper> class1 = NodeMapper.class;
\r
475 Method method = class1.getDeclaredMethod("resolveExternalLayer2Group", new Class[]{
\r
478 VirtualNetwork.class,
\r
479 UserIntentVnMapping.class,
\r
482 method.setAccessible(true);
\r
484 boolean generatingVirtualRouter = true;
\r
485 User user = mock(User.class);
\r
486 Node node = mock(Node.class);
\r
487 Property property = mock(Property.class);
\r
488 Property property1 = mock(Property.class);
\r
489 NodeId nodeId = mock(NodeId.class);
\r
490 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
\r
491 UserIntentVnMapping userIntentVnMapping = mock(UserIntentVnMapping.class);
\r
492 PhysicalNodeId physicalNodeId = mock(PhysicalNodeId.class);
\r
493 VirtualNodes virtualNodes_temp = mock(VirtualNodes.class);
\r
494 PropertyValues propertyValues = mock(PropertyValues.class);
\r
495 StringValue stringValue = mock(StringValue.class);
\r
497 List<Property> propertyList = new ArrayList<Property>();
\r
498 List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>();
\r
499 List<StringValue> stringValueList = new ArrayList<StringValue>();
\r
500 List<IntentVnMappingResult> intentVnMappingResultList = new ArrayList<IntentVnMappingResult>();
\r
502 stringValueList.add(stringValue);
\r
504 when(node.getProperty()).thenReturn(propertyList);
\r
505 PowerMockito.mockStatic(IntentResolverUtils.class);
\r
506 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("location")))
\r
507 .thenReturn(property);
\r
508 PowerMockito.when(IntentResolverUtils.generatePhysicalNodeIdFromNodeLocationProperty(property))
\r
509 .thenReturn(physicalNodeId);
\r
510 when(physicalNodeId.getValue()).thenReturn(new String("test"));
\r
511 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes_temp);
\r
512 when(virtualNodes_temp.getVirtualNode()).thenReturn(virtualNodes);
\r
513 PowerMockito.when(IntentResolverUtils.getNodeProperty(node.getProperty(), new PropertyName("ip-prefix")))
\r
514 .thenReturn(property1);
\r
515 when(property1.getPropertyValues()).thenReturn(propertyValues);
\r
516 when(propertyValues.getStringValue()).thenReturn(stringValueList);
\r
517 when(stringValue.getValue())
\r
518 .thenReturn(new String("192.168.1.1/24"))
\r
519 .thenReturn(new String("test"));
\r
520 when(property.getPropertyValues()).thenReturn(propertyValues);
\r
521 when(node.getNodeId()).thenReturn(nodeId);
\r
522 when(nodeId.getValue()).thenReturn(new String("00001111-1111-0000-0000-000011112222"));
\r
523 when(userIntentVnMapping.getIntentVnMappingResult()).thenReturn(intentVnMappingResultList);
\r
525 method.invoke(nodeMapper, user, node, virtualNetwork, userIntentVnMapping, generatingVirtualRouter);
\r
526 verify(node).getNodeId();
\r