2 * Copyright 2016-2017, Nokia Corporation
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.impl;
19 import static org.mockito.Mockito.when;
21 import java.io.IOException;
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.List;
26 import org.apache.http.client.ClientProtocolException;
27 import org.junit.Before;
28 import org.junit.Test;
29 import org.mockito.InjectMocks;
30 import org.mockito.Mock;
31 import org.mockito.Mockito;
32 import org.mockito.MockitoAnnotations;
33 import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.bo.AdaptorEnv;
34 import org.onap.vfc.nfvo.driver.vnfm.svnfm.common.bo.KeyValuePair;
35 import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonEnum;
36 import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonEnum.LifecycleOperation;
37 import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpClientProcessorInf;
38 import org.onap.vfc.nfvo.driver.vnfm.svnfm.http.client.HttpResult;
39 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfRequest;
40 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmGrantVnfResponse;
41 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.NslcmNotifyLCMEventsRequest;
42 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AccessInfo;
43 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AddResource;
44 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AdditionalParam;
45 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AffectedVirtualStorage;
46 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.AffectedVnfc;
47 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.InterfaceInfo;
48 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.ResourceDefinition;
49 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.ResourceTemplate;
50 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.VimAssets;
51 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.VirtualComputeDescriptor;
52 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.VirtualCpu;
53 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.VirtualMemory;
54 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.VirtualStorageDescriptor;
55 import org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.bo.entity.NslcmVimInfo;
56 import org.springframework.web.bind.annotation.RequestMethod;
58 import com.google.gson.Gson;
60 public class NslcmMgmrImplTest {
62 private NslcmMgmrImpl nslcmMgmr;
65 private HttpClientProcessorInf httpClientProcessor;
67 private String vnfInstanceId = "vnfInstanceId_001";
68 private String vnfmId = "vnfmId_001";
70 private Gson gson = new Gson();
73 public void setUp() throws Exception {
74 MockitoAnnotations.initMocks(this);
75 AdaptorEnv env = new AdaptorEnv();
76 nslcmMgmr.setAdaptorEnv(env);
77 MockitoAnnotations.initMocks(this);
81 public void testGrantVnf() throws ClientProtocolException, IOException
83 ResourceDefinition resource = new ResourceDefinition();
84 resource.setVimId("vimId");
85 resource.setVnfInstanceId("vnfInstanceId");
87 List<AddResource> addresources=new ArrayList<AddResource>();
88 AddResource addresource=new AddResource();
89 addresource.setResourceDefinitionId(1);
90 addresource.setType("type");
91 addresource.setVdu("vdu");
92 ResourceTemplate temp=new ResourceTemplate();
93 VirtualComputeDescriptor compute=new VirtualComputeDescriptor();
94 VirtualCpu cpu=new VirtualCpu();
95 cpu.setNumVirtualCpu(1);
96 VirtualMemory memory=new VirtualMemory();
97 compute.setVirtualCpu(cpu);
98 compute.setVirtualMemory(memory);
99 VirtualStorageDescriptor storage=new VirtualStorageDescriptor();
100 storage.setSizeOfStorage(1);
101 storage.setSwImageDescriptor("swImageDescriptor");
102 storage.setSizeOfStorage(1);
103 temp.setVirtualComputeDescriptor(compute);
104 temp.setVirtualStorageDescriptor(storage);
105 addresources.add(addresource);
106 AdditionalParam param=new AdditionalParam();
107 param.setTenant("tenant");
108 param.setVimid("vimid");
109 param.setVnfmid("vnfmid");
111 resource.setAdditionalParam(param);
112 resource.setAddResource(addresources);
114 NslcmGrantVnfResponse gresponse = new NslcmGrantVnfResponse();
115 List<KeyValuePair> additionalParam1 = new ArrayList<KeyValuePair>();
116 KeyValuePair pair = new KeyValuePair();
118 pair.setValue("value");
119 additionalParam1.add(pair);
121 List<ResourceDefinition> additionalParam2 = new ArrayList<ResourceDefinition>();
122 additionalParam2.add(resource);
123 gresponse.setAdditionalParam(additionalParam2);
125 List<NslcmVimInfo> vim = new ArrayList<NslcmVimInfo>();
126 NslcmVimInfo vims=new NslcmVimInfo();
128 vims.setInterfaceEndpoint("interfaceEndpoint");
129 vims.setVimId("vimId");
130 List<AccessInfo> accessInfo = null;
131 vims.setAccessInfo(accessInfo);
132 List<InterfaceInfo> interfaceInfo = null;
133 vims.setInterfaceInfo(interfaceInfo);
136 VimAssets vimAssets = null;
137 gresponse.setVimAssets(vimAssets);
139 gresponse.setVim(vim);
140 String json = gson.toJson(gresponse);
141 HttpResult httpResult = new HttpResult();
142 httpResult.setContent(json);
144 when(httpClientProcessor.process(Mockito.anyString(), Mockito.any(RequestMethod.class), Mockito.any(HashMap.class), Mockito.anyString())).thenReturn(httpResult);
146 NslcmGrantVnfRequest cbamRequest = new NslcmGrantVnfRequest();
147 List<KeyValuePair> additionalParam = new ArrayList<KeyValuePair>();
148 pair = new KeyValuePair();
150 pair.setValue("value");
151 additionalParam.add(pair);
152 cbamRequest.setAdditionalParam(additionalParam);
155 List<ResourceDefinition> addResource = new ArrayList<ResourceDefinition>();
156 addResource.add(resource);
158 cbamRequest.setAddResource(addResource);
159 cbamRequest.setVnfInstanceId("vnfInstanceId");
160 cbamRequest.setJobId("jobId");
161 LifecycleOperation lifecycleOperation = CommonEnum.LifecycleOperation.Instantiate;
162 cbamRequest.setLifecycleOperation(lifecycleOperation);
163 cbamRequest.setRemoveResource(addResource);
165 NslcmGrantVnfResponse response = nslcmMgmr.grantVnf(cbamRequest);
169 public void testNotifyVnf() throws ClientProtocolException, IOException
172 HttpResult httpResult = new HttpResult();
173 httpResult.setContent(json);
175 when(httpClientProcessor.process(Mockito.anyString(), Mockito.any(RequestMethod.class), Mockito.any(HashMap.class), Mockito.anyString())).thenReturn(httpResult);
176 NslcmNotifyLCMEventsRequest cbamRequest = new NslcmNotifyLCMEventsRequest();
177 cbamRequest.setJobId("jobId");
178 cbamRequest.setOperation("operation");
179 cbamRequest.setVnfInstanceId(vnfInstanceId);
180 List<AffectedVirtualStorage> affectedVirtualStorage = new ArrayList<AffectedVirtualStorage>();
181 cbamRequest.setAffectedVirtualStorage(affectedVirtualStorage );
182 List<AffectedVnfc> affectedVnfc = new ArrayList<AffectedVnfc>();
183 cbamRequest.setAffectedVnfc(affectedVnfc );
184 nslcmMgmr.notifyVnf(cbamRequest, vnfmId, vnfInstanceId);