2 * Copyright (c) 2015 Huawei, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.nemo.intent.computation;
11 import junit.framework.TestCase;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
16 import static org.junit.Assert.*;
17 import com.google.common.base.Optional;
18 import com.google.common.util.concurrent.CheckedFuture;
19 import org.junit.runner.RunWith;
20 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
21 import org.opendaylight.nemo.user.tenantmanager.AAA;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.PhysicalResourceEntityId;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNetworkId;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.AttributeDefinition.AttributeValueType;
25 import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualLinkId;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualLinks;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.VirtualNodeId;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.attribute.instance.AttributeValue;
30 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.AttributeName;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNetwork;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNodeAttributeDefinitions;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalPortAttributeDefinitions;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.attribute.definition.AttributeMatchPatterns;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.attribute.instance.attribute.value.RangeValue;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.PhysicalNodes;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.nodes.PhysicalNode;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.paths.PhysicalPath;
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.network.physical.paths.PhysicalPathBuilder;
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.attribute.definitions.PhysicalNodeAttributeDefinition;
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.attribute.definitions.PhysicalNodeAttributeDefinitionKey;
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.PhysicalPort;
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.port.attribute.definitions.PhysicalPortAttributeDefinition;
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.port.attribute.definitions.PhysicalPortAttributeDefinitionKey;
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.port.instance.Attribute;
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.VirtualNetwork;
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLink;
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.links.VirtualLinkBuilder;
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.virtual.nodes.VirtualNode;
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.VirtualPort;
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.port.instance.PhysicalResourceRequirement;
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.PhysicalResourceInstance;
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.VirtualNodeInstance.NodeType;
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.VirtualResourceInstance;
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.UserVnPnMapping;
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.user.vn.pn.mapping.VnPnMappingResult;
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.intent.mapping.result.rev151010.vn.pn.mapping.results.user.vn.pn.mapping.VnPnMappingResultBuilder;
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.common.rev151010.UserId;
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.networks.virtual.network.VirtualNodes;
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.nemo.engine.common.rev151010.*;
62 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
63 import org.slf4j.Logger;
64 import org.slf4j.LoggerFactory;
65 import org.powermock.api.mockito.PowerMockito;
66 import org.powermock.api.support.membermodification.MemberMatcher;
67 import org.powermock.api.support.membermodification.MemberModifier;
68 import org.powermock.core.classloader.annotations.PrepareForTest;
69 import org.powermock.modules.junit4.PowerMockRunner;
70 import java.lang.reflect.Method;
71 import java.util.ArrayList;
72 import java.util.LinkedList;
73 import java.util.List;
74 import java.util.UUID;
75 import java.util.concurrent.ExecutionException;
76 import static org.mockito.Mockito.*;
78 * Created by zhangmeng on 2015/12/21.
80 @RunWith(PowerMockRunner.class)
81 @PrepareForTest({VNMappingUnit.class,VNMappingUnitUtils.class})
82 public class VNMappingUnitTest extends TestCase {
83 private Class<VNMappingUnit> class1;
84 private Method method;
85 private DataBroker dataBroker;
86 private PNComputationUnit pnComputationUnit;
87 private PNResourcesTracker pnResourcesTracker;
88 private VNMappingUnit vnMappingUnit;
91 public void setUp() throws Exception {
92 class1 = VNMappingUnit.class;
93 dataBroker = mock(DataBroker.class);
94 pnComputationUnit = mock(PNComputationUnit.class);
95 pnResourcesTracker = mock(PNResourcesTracker.class);
97 vnMappingUnit = new VNMappingUnit(dataBroker,pnComputationUnit,pnResourcesTracker);
101 public void testVirtualNetworkMapping() throws Exception {
102 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
103 UserVnPnMapping userVnPnMapping = mock(UserVnPnMapping.class);
104 List<PhysicalPath> physicalPaths = new ArrayList<PhysicalPath>();
106 ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
107 PhysicalNodes physicalNodes = mock(PhysicalNodes.class);
108 VirtualNodes virtualNodes_temp = mock(VirtualNodes.class);
109 CheckedFuture checkedFuture = mock(CheckedFuture.class);
110 VirtualNode virtualNode = mock(VirtualNode.class);
111 VirtualLinks virtualLinks_temp = mock(VirtualLinks.class);
112 VirtualLink virtualLink = mock(VirtualLink.class);
113 VirtualNetworkId virtualNetworkId = mock(VirtualNetworkId.class);
114 VirtualNodeId virtualNodeId = mock(VirtualNodeId.class);
115 VnPnMappingResult vnPnMappingResult_virtualLinkMapping = mock(VnPnMappingResult.class);
116 UserId userId = mock(UserId.class);
117 VirtualLinkId virtualLinkId = mock(VirtualLinkId.class);
118 PhysicalResourceEntityId physicalResourceEntityId_virtualLinkMapping = mock(PhysicalResourceEntityId.class);
119 Optional<PhysicalNodes> result = Optional.of(physicalNodes);
120 List<PhysicalNode> physicalNodeList = new ArrayList<PhysicalNode>();
121 List<VirtualNode> virtualNodes = new ArrayList<VirtualNode>();
122 List<VirtualLink> virtualLinks = new ArrayList<VirtualLink>();
123 List<VnPnMappingResult> vnPnMappingResults = new ArrayList<VnPnMappingResult>();
124 List<VnPnMappingResult> vnPnMappingResults_virtualLinkMapping = new ArrayList<VnPnMappingResult>();
126 virtualLinks.add(virtualLink);
128 Assert.assertTrue(result.isPresent());
129 when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
130 when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);
131 when(checkedFuture.get()).thenReturn(result);
132 when(physicalNodes.getPhysicalNode()).thenReturn(physicalNodeList);
133 when(virtualNetwork.getUserId()).thenReturn(userId);
134 when(userVnPnMapping.getVnPnMappingResult())
135 .thenReturn(vnPnMappingResults)
136 .thenReturn(vnPnMappingResults_virtualLinkMapping);
137 when(virtualNetwork.getVirtualNodes()).thenReturn(virtualNodes_temp);
138 when(virtualNodes_temp.getVirtualNode()).thenReturn(virtualNodes);
142 when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLinks_temp);
143 when(virtualLinks_temp.getVirtualLink()).thenReturn(virtualLinks);
144 when(virtualNetwork.getNetworkId()).thenReturn(virtualNetworkId);
145 //get into method "virtualLinkMapping" args(virtualNetworkId,virtualLink,userVnPnMapping)
146 when(virtualLink.getSrcNodeId()).thenReturn(virtualNodeId);
147 when(virtualNodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
149 PowerMockito.mockStatic(VNMappingUnitUtils.class);
150 PowerMockito.when(VNMappingUnitUtils.getVnPnMappingResult(vnPnMappingResults_virtualLinkMapping, new VirtualResourceEntityId(new String("00001111-0000-0000-0000-000011112222"))))
151 .thenReturn(vnPnMappingResult_virtualLinkMapping);
152 when(vnPnMappingResult_virtualLinkMapping.getPhysicalResourceEntityId()).thenReturn(physicalResourceEntityId_virtualLinkMapping);
153 when(physicalResourceEntityId_virtualLinkMapping.getValue()).thenReturn(new String("test"));
154 when(virtualLink.getDestNodeId()).thenReturn(virtualNodeId);
155 when(virtualLink.getBandwidth()).thenReturn(1L);
157 when(virtualLink.getLinkId()).thenReturn(virtualLinkId);
158 when(virtualLinkId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
160 vnMappingUnit.virtualNetworkMapping(virtualNetwork, userVnPnMapping, physicalPaths);
161 verify(userVnPnMapping,times(2)).getVnPnMappingResult();
162 verify(virtualLink,times(2)).getSrcNodeId();
163 verify(virtualLink,times(2)).getDestNodeId();
164 verify(virtualNodeId,times(2)).getValue();
168 public void testVirtualNetworkMapping1() throws Exception {
169 VirtualNodeId virtualNodeId = mock(VirtualNodeId.class);
170 VirtualNetworkId virtualNetworkId = mock(VirtualNetworkId.class);
171 VnPnMappingResult vnPnMappingResult_virtualLinkMapping = mock(VnPnMappingResult.class);
172 VirtualNetwork virtualNetwork = mock(VirtualNetwork.class);
173 UserVnPnMapping userVnPnMapping = mock(UserVnPnMapping.class);
174 VirtualLinks virtualLinks_temp = mock(VirtualLinks.class);
175 VirtualLink virtualLink = mock(VirtualLink.class);
176 VirtualLinkId virtualLinkId = mock(VirtualLinkId.class);
177 PhysicalResourceEntityId physicalResourceEntityId_virtualLinkMapping = mock(PhysicalResourceEntityId.class);
178 List<VirtualLink> virtualLinks = new ArrayList<VirtualLink>();
179 List<VirtualLink> unmappedVirtualLinks = new ArrayList<VirtualLink>();
180 List<PhysicalPath> physicalPaths = new ArrayList<PhysicalPath>();
181 List<VnPnMappingResult> vnPnMappingResults = new ArrayList<VnPnMappingResult>();
182 List<VnPnMappingResult> vnPnMappingResults_virtualLinkMapping = new ArrayList<VnPnMappingResult>();
184 unmappedVirtualLinks.add(virtualLink);
185 virtualLinks.add(virtualLink);
187 when(virtualNetwork.getVirtualLinks()).thenReturn(virtualLinks_temp);
188 when(virtualLinks_temp.getVirtualLink()).thenReturn(virtualLinks);
189 when(userVnPnMapping.getVnPnMappingResult())
190 .thenReturn(vnPnMappingResults)
191 .thenReturn(vnPnMappingResults_virtualLinkMapping);;
192 when(virtualNetwork.getNetworkId()).thenReturn(virtualNetworkId);
193 //get into method "virtualLinkMapping" args(virtualNetworkId,virtualLink,userVnPnMapping)
194 when(virtualLink.getSrcNodeId()).thenReturn(virtualNodeId);
195 when(virtualNodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
197 PowerMockito.mockStatic(VNMappingUnitUtils.class);
198 PowerMockito.when(VNMappingUnitUtils.getVnPnMappingResult(vnPnMappingResults_virtualLinkMapping, new VirtualResourceEntityId(new String("00001111-0000-0000-0000-000011112222"))))
199 .thenReturn(vnPnMappingResult_virtualLinkMapping);
200 when(vnPnMappingResult_virtualLinkMapping.getPhysicalResourceEntityId()).thenReturn(physicalResourceEntityId_virtualLinkMapping);
201 when(physicalResourceEntityId_virtualLinkMapping.getValue()).thenReturn(new String("test"));
202 when(virtualLink.getDestNodeId()).thenReturn(virtualNodeId);
203 when(virtualLink.getBandwidth()).thenReturn(1L);
205 when(virtualLink.getLinkId()).thenReturn(virtualLinkId);
206 when(virtualLinkId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
208 vnMappingUnit.virtualNetworkMapping(virtualNetwork, unmappedVirtualLinks, userVnPnMapping, physicalPaths);
209 verify(userVnPnMapping,times(2)).getVnPnMappingResult();
210 verify(virtualLink,times(2)).getSrcNodeId();
211 verify(virtualLink,times(2)).getDestNodeId();
212 verify(virtualNodeId,times(2)).getValue();
216 public void testClose() throws Exception {
217 vnMappingUnit.close();
218 Assert.assertTrue(vnMappingUnit != null);
222 public void testCheckAttributeRangeValueSatisfied() throws Exception {
223 method = class1.getDeclaredMethod("checkAttributeRangeValueSatisfied",new Class[]{Long.class,
225 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.class});
226 method.setAccessible(true);
228 Long attributeValue = 1L;
229 RangeValue requiredAttributeValue = mock(RangeValue.class);
230 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
231 attributeMatchPattern = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.Between;
233 when(requiredAttributeValue.getMin()).thenReturn(0L);
234 when(requiredAttributeValue.getMax()).thenReturn(2L);
236 Assert.assertTrue((boolean) method.invoke(vnMappingUnit, attributeValue, requiredAttributeValue, attributeMatchPattern));
239 public void testCheckAttributeRangeValueSatisfied1() throws Exception {
240 method = class1.getDeclaredMethod("checkAttributeRangeValueSatisfied",new Class[]{Long.class,RangeValue.class,PhysicalResourceRequirement.AttributeMatchPattern.class});
241 method.setAccessible(true);
243 Long attributeValue = 1L;
244 RangeValue requiredAttributeValue = mock(RangeValue.class);
245 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern = PhysicalResourceRequirement.AttributeMatchPattern.Between;
247 when(requiredAttributeValue.getMin()).thenReturn(0L);
248 when(requiredAttributeValue.getMax()).thenReturn(2L);
250 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern));
254 public void testCheckAttributeIntegerValueSatisfied() throws Exception {
255 method = class1.getDeclaredMethod("checkAttributeIntegerValueSatisfied",new Class[]{Long.class,
257 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.class
259 method.setAccessible(true);
261 Long attributeValue = 2L;
262 Long requiredAttributeValue = 1L;
263 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
264 attributeMatchPattern = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
265 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
266 attributeMatchPattern1 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.NotLessThan;
267 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
268 attributeMatchPattern2 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.Equal;
269 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
270 attributeMatchPattern3 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.NotEqual;
271 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
272 attributeMatchPattern4 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.GreaterThan;
273 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
274 attributeMatchPattern5 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.NotGreaterThan;
276 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern) == false);
277 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern1) == true);
278 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern2) == false);
279 Assert.assertTrue((boolean) method.invoke(vnMappingUnit, attributeValue, requiredAttributeValue, attributeMatchPattern3) == true);
280 Assert.assertTrue((boolean) method.invoke(vnMappingUnit, attributeValue, requiredAttributeValue, attributeMatchPattern4) == true);
281 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern5) == false);
285 public void testCheckAttributeIntegerValueSatisfied1() throws Exception {
286 method = class1.getDeclaredMethod("checkAttributeIntegerValueSatisfied",new Class[]{Long.class,Long.class,PhysicalResourceRequirement.AttributeMatchPattern.class});
287 method.setAccessible(true);
289 Long attributeValue = 2L;
290 Long requiredAttributeValue = 1L;
291 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern = PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
292 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern1 = PhysicalResourceRequirement.AttributeMatchPattern.NotLessThan;
293 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern2 = PhysicalResourceRequirement.AttributeMatchPattern.Equal;
294 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern3 = PhysicalResourceRequirement.AttributeMatchPattern.NotEqual;
295 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern4 = PhysicalResourceRequirement.AttributeMatchPattern.GreaterThan;
296 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern5 = PhysicalResourceRequirement.AttributeMatchPattern.NotGreaterThan;
298 Assert.assertTrue(!(boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern));
299 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern1));
300 Assert.assertTrue(!(boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern2));
301 Assert.assertTrue((boolean) method.invoke(vnMappingUnit,attributeValue, requiredAttributeValue, attributeMatchPattern3));
302 Assert.assertTrue((boolean) method.invoke(vnMappingUnit,attributeValue, requiredAttributeValue, attributeMatchPattern4));
303 Assert.assertTrue(!(boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern5));
307 public void testCheckAttributeStringValueSatisfied() throws Exception {
308 method = class1.getDeclaredMethod("checkAttributeStringValueSatisfied",new Class[]{
311 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.class
313 method.setAccessible(true);
315 String attributeValue = new String("test");
316 String requiredAttributeValue = new String("test");
317 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
318 attributeMatchPattern = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
319 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
320 attributeMatchPattern1 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.NotLessThan;
321 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
322 attributeMatchPattern2 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.Equal;
323 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
324 attributeMatchPattern3 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.NotEqual;
325 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
326 attributeMatchPattern4 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.GreaterThan;
327 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
328 attributeMatchPattern5 = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.NotGreaterThan;
330 Assert.assertTrue(!(boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern));
331 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern1));
332 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern2));
333 Assert.assertTrue(!(boolean) method.invoke(vnMappingUnit,attributeValue, requiredAttributeValue, attributeMatchPattern3));
334 Assert.assertTrue(!(boolean) method.invoke(vnMappingUnit,attributeValue, requiredAttributeValue, attributeMatchPattern4));
335 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern5));
339 public void testCheckAttributeStringValueSatisfied1() throws Exception {
340 method = class1.getDeclaredMethod("checkAttributeStringValueSatisfied",new Class[]{
343 PhysicalResourceRequirement.AttributeMatchPattern.class
345 method.setAccessible(true);
347 String attributeValue = new String("test");
348 String requiredAttributeValue = new String("test");
349 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern = PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
350 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern1 = PhysicalResourceRequirement.AttributeMatchPattern.NotLessThan;
351 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern2 = PhysicalResourceRequirement.AttributeMatchPattern.Equal;
352 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern3 = PhysicalResourceRequirement.AttributeMatchPattern.NotEqual;
353 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern4 = PhysicalResourceRequirement.AttributeMatchPattern.GreaterThan;
354 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern5 = PhysicalResourceRequirement.AttributeMatchPattern.NotGreaterThan;
356 Assert.assertTrue(!(boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern));
357 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern1));
358 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern2));
359 Assert.assertTrue(!(boolean) method.invoke(vnMappingUnit,attributeValue, requiredAttributeValue, attributeMatchPattern3));
360 Assert.assertTrue(!(boolean) method.invoke(vnMappingUnit,attributeValue, requiredAttributeValue, attributeMatchPattern4));
361 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeValue,requiredAttributeValue,attributeMatchPattern5));
365 public void testCheckAttributeMatchPatternSpecified() throws Exception {
366 method = class1.getDeclaredMethod("checkAttributeMatchPatternSpecified",new Class[]{
368 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.class
370 method.setAccessible(true);
372 AttributeMatchPatterns.AttributeMatchPattern matchPattern = AttributeMatchPatterns.AttributeMatchPattern.LessThan;
373 List<AttributeMatchPatterns.AttributeMatchPattern> attributeMatchPatterns = new ArrayList<AttributeMatchPatterns.AttributeMatchPattern>();
374 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
375 attributeMatchPattern = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
376 attributeMatchPatterns.add(matchPattern);
378 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attributeMatchPatterns,attributeMatchPattern));
383 public void testCheckAttributeMatchPatternSpecified1() throws Exception {
384 method = class1.getDeclaredMethod("checkAttributeMatchPatternSpecified",new Class[]{
386 PhysicalResourceRequirement.AttributeMatchPattern.class
388 method.setAccessible(true);
390 AttributeMatchPatterns.AttributeMatchPattern matchPattern = AttributeMatchPatterns.AttributeMatchPattern.LessThan;
391 List<AttributeMatchPatterns.AttributeMatchPattern> attributeMatchPatterns = new ArrayList<AttributeMatchPatterns.AttributeMatchPattern>();
392 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern = PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
393 attributeMatchPatterns.add(matchPattern);
395 Assert.assertTrue((boolean) method.invoke(vnMappingUnit, attributeMatchPatterns, attributeMatchPattern));
400 public void testCheckPhysicalNodeAttributeSatisfied() throws Exception{
401 method = class1.getDeclaredMethod("checkPhysicalNodeAttributeSatisfied",new Class[]{
402 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute.class,
403 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.class
405 method.setAccessible(true);
407 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute
408 attribute = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute.class);
409 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement
410 physicalResourceRequirement = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.class);
411 AttributeMatchPatterns attributeMatchPatterns_temp = mock(AttributeMatchPatterns.class);
412 AttributeName attributeName = mock(AttributeName.class);
413 ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
414 PhysicalNodeAttributeDefinition physicalNodeAttributeDefinition = mock(PhysicalNodeAttributeDefinition.class);
415 CheckedFuture checkedFuture = mock(CheckedFuture.class);
416 AttributeValue attributeValue = mock(AttributeValue.class);
417 AttributeMatchPatterns.AttributeMatchPattern attributeMatchPattern_in_list = AttributeMatchPatterns.AttributeMatchPattern.LessThan;
418 Optional<PhysicalNodeAttributeDefinition> result = Optional.of(physicalNodeAttributeDefinition);
419 List<AttributeMatchPatterns.AttributeMatchPattern> attributeMatchPatterns = new ArrayList<AttributeMatchPatterns.AttributeMatchPattern>();
420 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern
421 attributeMatchPattern = org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
423 attributeMatchPatterns.add(attributeMatchPattern_in_list);
425 when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
426 when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);
427 when(checkedFuture.get()).thenReturn(result);
428 when(physicalNodeAttributeDefinition.getAttributeMatchPatterns()).thenReturn(attributeMatchPatterns_temp);//need to test
429 when(attributeMatchPatterns_temp.getAttributeMatchPattern()).thenReturn(attributeMatchPatterns);
430 when(physicalResourceRequirement.getAttributeMatchPattern()).thenReturn(attributeMatchPattern);
431 when(attribute.getAttributeName()).thenReturn(attributeName);//need to test
433 //get into methond"checkAttributeMatchPatternSpecified" args(attributeMatchPatterns,attributeMatchPattern) both less then
436 when(physicalNodeAttributeDefinition.getAttributeValueType()).thenReturn(AttributeValueType.Int);
437 when(attribute.getAttributeValue()).thenReturn(attributeValue);
438 when(attributeValue.getIntValue())
441 when(physicalResourceRequirement.getAttributeValue()).thenReturn(attributeValue);
443 Assert.assertTrue((boolean) method.invoke(vnMappingUnit,attribute,physicalResourceRequirement));
447 public void testCheckPhysicalNodeAttributeSatisfied1() throws Exception{
448 method = class1.getDeclaredMethod("checkPhysicalPortAttributeSatisfied",new Class[]{
450 PhysicalResourceRequirement.class
452 method.setAccessible(true);
454 Attribute attribute = mock(Attribute.class);
455 AttributeMatchPatterns attributeMatchPatterns_temp = mock(AttributeMatchPatterns.class);
456 PhysicalResourceRequirement physicalResourceRequirement = mock(PhysicalResourceRequirement.class);
457 ReadOnlyTransaction readOnlyTransaction = mock(ReadOnlyTransaction.class);
458 AttributeValue attributeValue = mock(AttributeValue.class);
459 AttributeName attributeName = mock(AttributeName.class);
460 AttributeMatchPatterns.AttributeMatchPattern attributeMatchPattern = AttributeMatchPatterns.AttributeMatchPattern.LessThan;
461 PhysicalResourceRequirement.AttributeMatchPattern attributeMatchPattern1 = PhysicalResourceRequirement.AttributeMatchPattern.LessThan;
462 CheckedFuture checkedFuture = mock(CheckedFuture.class);
463 PhysicalPortAttributeDefinition physicalPortAttributeDefinition = mock(PhysicalPortAttributeDefinition.class);
464 Optional<PhysicalPortAttributeDefinition> result = Optional.of(physicalPortAttributeDefinition);
465 List<AttributeMatchPatterns.AttributeMatchPattern> attributeMatchPatterns = new ArrayList<AttributeMatchPatterns.AttributeMatchPattern>();
467 attributeMatchPatterns.add(attributeMatchPattern);
469 when(dataBroker.newReadOnlyTransaction()).thenReturn(readOnlyTransaction);
470 when(readOnlyTransaction.read(any(LogicalDatastoreType.class), any(InstanceIdentifier.class))).thenReturn(checkedFuture);
471 when(checkedFuture.get()).thenReturn(result);
472 when(physicalPortAttributeDefinition.getAttributeMatchPatterns()).thenReturn(attributeMatchPatterns_temp);
473 when(attributeMatchPatterns_temp.getAttributeMatchPattern()).thenReturn(attributeMatchPatterns);
474 when(physicalResourceRequirement.getAttributeMatchPattern()).thenReturn(attributeMatchPattern1);
476 //get into methond"checkAttributeMatchPatternSpecified" args(attributeMatchPatterns,attributeMatchPattern) both less then
479 when(attribute.getAttributeName()).thenReturn(attributeName);
480 when(physicalPortAttributeDefinition.getAttributeValueType()).thenReturn(AttributeValueType.Int);
481 when(attribute.getAttributeValue()).thenReturn(attributeValue);
482 when(attributeValue.getIntValue())
485 when(physicalResourceRequirement.getAttributeValue()).thenReturn(attributeValue);
487 Assert.assertTrue((boolean)method.invoke(vnMappingUnit,attribute,physicalResourceRequirement));
491 public void testVirtualNodeMapping() throws Exception{
492 method = class1.getDeclaredMethod("virtualNodeMapping",new Class[]{
493 VirtualNetworkId.class,
497 method.setAccessible(true);
499 VirtualNetworkId virtualNetworkId = mock(VirtualNetworkId.class);
500 VirtualNode virtualNode = mock(VirtualNode.class);
501 PhysicalNode.NodeType NodeType_Switch = PhysicalNode.NodeType.Switch;
502 PhysicalNode.NodeType NodeType_Router = PhysicalNode.NodeType.Router;
503 PhysicalNode.NodeType NodeType_Firewall = PhysicalNode.NodeType.Firewall;
504 PhysicalNode.NodeType NodeType_Loadbalancer = PhysicalNode.NodeType.Loadbalancer;
505 NodeType nodeType_Vswitch = NodeType.Vswitch;
506 NodeType nodeType_Vrouter = NodeType.Vrouter;
507 NodeType nodeType_Vfirewall = NodeType.Vrouter;
508 NodeType nodeType_Vloadbalancer = NodeType.Vrouter;
510 // org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.PhysicalNodeInstance.NodeType
512 PhysicalNode physicalNode = mock(PhysicalNode.class);
513 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement
514 physicalResourceRequirement = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.class);
515 List<PhysicalNode> physicalNodes = new ArrayList<PhysicalNode>();
516 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement>
517 physicalResourceRequirements = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement>();
519 physicalResourceRequirements.add(physicalResourceRequirement);
521 when(virtualNode.getPhysicalResourceRequirement()).thenReturn(physicalResourceRequirements);
522 when(virtualNode.getNodeType())
523 .thenReturn(nodeType_Vswitch)
524 .thenReturn(nodeType_Vswitch)
525 .thenReturn(nodeType_Vswitch)
526 .thenReturn(nodeType_Vrouter)
527 .thenReturn(nodeType_Vrouter)
528 .thenReturn(nodeType_Vfirewall)
529 .thenReturn(nodeType_Vfirewall)
530 .thenReturn(nodeType_Vloadbalancer)
531 .thenReturn(nodeType_Vloadbalancer);
533 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
535 physicalNodes.add(physicalNode);
537 //test nodeType_Vswitch
538 when(physicalNode.getNodeType())
540 .thenReturn(NodeType_Switch)
542 .thenReturn(NodeType_Router)
544 .thenReturn(NodeType_Firewall)
546 .thenReturn(NodeType_Loadbalancer);
547 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
548 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
549 //test nodeType_Vrouter
550 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
551 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
552 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
553 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
554 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
555 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNode, physicalNodes) == null);
559 public void testVirtualPortMapping() throws Exception{
560 method = class1.getDeclaredMethod("virtualPortMapping", new Class[]{
561 VirtualNetworkId.class,
566 method.setAccessible(true);
568 VirtualNetworkId virtualNetworkId = mock(VirtualNetworkId.class);
569 VirtualNodeId virtualNodeId = mock(VirtualNodeId.class);
570 VirtualPort virtualPort = mock(VirtualPort.class);
571 PhysicalNode physicalNode = mock(PhysicalNode.class);
572 VirtualPort.PortType portType = VirtualPort.PortType.Internal;
573 PhysicalPort physicalPort = mock(PhysicalPort.class);
574 List<PhysicalPort> physicalPorts = new ArrayList<PhysicalPort>();
575 List<PhysicalResourceRequirement> physicalResourceRequirements = new ArrayList<PhysicalResourceRequirement>();
577 physicalPorts.add(physicalPort);
579 when(virtualPort.getPortType())
581 .thenReturn(portType);
583 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNodeId, virtualPort, physicalNode) == null);
586 when(physicalNode.getPhysicalPort()).thenReturn(physicalPorts);
587 when(virtualPort.getPhysicalResourceRequirement()).thenReturn(physicalResourceRequirements);
588 when(physicalPort.getPortType())
590 .thenReturn(PhysicalPort.PortType.External);
592 Assert.assertTrue(method.invoke(vnMappingUnit, virtualNetworkId, virtualNodeId, virtualPort, physicalNode) == null);
593 Assert.assertTrue(method.invoke(vnMappingUnit,virtualNetworkId,virtualNodeId,virtualPort,physicalNode) == null);
598 public void testVirtualLinkMapping() throws Exception{
599 method = class1.getDeclaredMethod("virtualLinkMapping",new Class[]{
600 VirtualNetworkId.class,
602 UserVnPnMapping.class
604 method.setAccessible(true);
606 VirtualNetworkId virtualNetworkId = mock(VirtualNetworkId.class);
607 VirtualLink virtualLink = mock(VirtualLink.class);
608 UserVnPnMapping userVnPnMapping = mock(UserVnPnMapping.class);
609 VirtualNodeId virtualNodeId = mock(VirtualNodeId.class);
610 VnPnMappingResult vnPnMappingResult = mock(VnPnMappingResult.class);
611 PhysicalResourceEntityId physicalResourceEntityId = mock(PhysicalResourceEntityId.class);
612 List<VnPnMappingResult> vnPnMappingResults = new ArrayList<VnPnMappingResult>();
614 when(userVnPnMapping.getVnPnMappingResult()).thenReturn(vnPnMappingResults);
615 when(virtualLink.getSrcNodeId()).thenReturn(virtualNodeId);
616 when(virtualNodeId.getValue()).thenReturn(new String("00001111-0000-0000-0000-000011112222"));
618 PowerMockito.mockStatic(VNMappingUnitUtils.class);
619 PowerMockito.when(VNMappingUnitUtils.getVnPnMappingResult(vnPnMappingResults, new VirtualResourceEntityId(new String("00001111-0000-0000-0000-000011112222"))))
620 .thenReturn(vnPnMappingResult);
621 when(virtualLink.getDestNodeId()).thenReturn(virtualNodeId);
622 when(vnPnMappingResult.getPhysicalResourceEntityId()).thenReturn(physicalResourceEntityId);
623 when(physicalResourceEntityId.getValue())
624 .thenReturn(new String("test"))//source
625 .thenReturn(new String("test"))//destination
626 .thenReturn(new String("src"))//source2
627 .thenReturn(new String("dst"))//destination2
628 .thenReturn(new String("src"))//source3
629 .thenReturn(new String("dst"));//destination3
630 when(virtualLink.getBandwidth())
631 .thenReturn(1L)//first trap
632 .thenReturn(0L)//second trap
633 .thenReturn(1L);//third trap
635 Assert.assertTrue((PhysicalPath) method.invoke(vnMappingUnit, virtualNetworkId, virtualLink, userVnPnMapping) != null);
636 verify(virtualLink).getBandwidth();
639 when(pnComputationUnit.computePath(any(PhysicalNodeId.class), any(PhysicalNodeId.class))).thenReturn(null);
640 when(pnComputationUnit.computePath(any(PhysicalNodeId.class), any(PhysicalNodeId.class), any(long.class))).thenReturn(null);
642 Assert.assertTrue((PhysicalPath) method.invoke(vnMappingUnit, virtualNetworkId, virtualLink, userVnPnMapping) == null);
643 Assert.assertTrue((PhysicalPath) method.invoke(vnMappingUnit, virtualNetworkId, virtualLink, userVnPnMapping) == null);
644 verify(virtualLink,times(4)).getBandwidth();
648 public void testCheckPhysicalPortSatisfied() throws Exception{
649 method = class1.getDeclaredMethod("checkPhysicalNodeSatisfied",new Class[]{
653 method.setAccessible(true);
655 PhysicalNode physicalNode = mock(PhysicalNode.class);
656 AttributeName attributeName = mock(AttributeName.class);
657 AttributeName attributeName1 = mock(AttributeName.class);
658 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement
659 physicalResourceRequirement = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement.class);
660 org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute
661 attribute = mock(org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute.class);
662 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement>
663 physicalResourceRequirements = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.virtual.network.rev151010.virtual.node.instance.PhysicalResourceRequirement>();
664 List<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute>
665 attributes = new ArrayList<org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.generic.physical.network.rev151010.physical.node.instance.Attribute>();
667 attributes.add(attribute);
668 physicalResourceRequirements.add(physicalResourceRequirement);
669 Assert.assertTrue(attributeName != attributeName1);
671 when(physicalNode.getAttribute()).thenReturn(attributes);
672 when(physicalResourceRequirement.getAttributeName()).thenReturn(attributeName);
673 //get into method "getPhysicalNodeAttribute _long" args(attributes,attributeName)
674 when(attribute.getAttributeName())
675 .thenReturn(attributeName1) //return null
676 .thenReturn(attributeName); //return attribute
678 Assert.assertTrue((boolean) method.invoke(vnMappingUnit, physicalNode, physicalResourceRequirements) == false);
679 //get in to method "checkPhysicalNodeAttributeSatisfied" args(attribute,physicalResourceRequirement)
684 public void testCheckPhysicalPortSatisfied1() throws Exception{
685 method = class1.getDeclaredMethod("checkPhysicalPortSatisfied",new Class[]{
689 method.setAccessible(true);
691 PhysicalPort physicalPort = mock(PhysicalPort.class);
692 Attribute attribute = mock(Attribute.class);
693 AttributeName attributeName = mock(AttributeName.class);
694 AttributeName attributeName1 = mock(AttributeName.class);
695 PhysicalResourceRequirement physicalResourceRequirement = mock(PhysicalResourceRequirement.class);
696 List<Attribute> attributes = new ArrayList<Attribute>();
697 List<PhysicalResourceRequirement> physicalResourceRequirements = new ArrayList<PhysicalResourceRequirement>();
699 attributes.add(attribute);
700 physicalResourceRequirements.add(physicalResourceRequirement);
702 when(physicalPort.getAttribute()).thenReturn(attributes);
703 when(physicalResourceRequirement.getAttributeName()).thenReturn(attributeName);
704 //get into method "getPhysicalNodeAttribute" args(attributes,attributeName)
705 when(attribute.getAttributeName()).thenReturn(attributeName1);
707 Assert.assertTrue((boolean) method.invoke(vnMappingUnit, physicalPort, physicalResourceRequirements) == false);
708 //get in to method "checkPhysicalNodeAttributeSatisfied" args(attribute,physicalResourceRequirement)