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";
69 private Gson gson = new Gson();
72 public void setUp() throws Exception {
73 MockitoAnnotations.initMocks(this);
74 AdaptorEnv env = new AdaptorEnv();
75 nslcmMgmr.setAdaptorEnv(env);
76 MockitoAnnotations.initMocks(this);
80 public void testGrantVnf() throws ClientProtocolException, IOException
82 ResourceDefinition resource = new ResourceDefinition();
83 resource.setVimId("vimId");
84 resource.setVnfInstanceId("vnfInstanceId");
86 List<AddResource> addresources=new ArrayList<AddResource>();
87 AddResource addresource=new AddResource();
88 addresource.setResourceDefinitionId(1);
89 addresource.setType("type");
90 addresource.setVdu("vdu");
91 ResourceTemplate temp=new ResourceTemplate();
92 VirtualComputeDescriptor compute=new VirtualComputeDescriptor();
93 VirtualCpu cpu=new VirtualCpu();
94 cpu.setNumVirtualCpu(1);
95 VirtualMemory memory=new VirtualMemory();
96 compute.setVirtualCpu(cpu);
97 compute.setVirtualMemory(memory);
98 VirtualStorageDescriptor storage=new VirtualStorageDescriptor();
99 storage.setSizeOfStorage(1);
100 storage.setSwImageDescriptor("swImageDescriptor");
101 storage.setSizeOfStorage(1);
102 temp.setVirtualComputeDescriptor(compute);
103 temp.setVirtualStorageDescriptor(storage);
104 addresources.add(addresource);
105 AdditionalParam param=new AdditionalParam();
106 param.setTenant("tenant");
107 param.setVimid("vimid");
108 param.setVnfmid("vnfmid");
110 resource.setAdditionalParam(param);
111 resource.setAddResource(addresources);
113 NslcmGrantVnfResponse gresponse = new NslcmGrantVnfResponse();
114 List<KeyValuePair> additionalParam1 = new ArrayList<KeyValuePair>();
115 KeyValuePair pair = new KeyValuePair();
117 pair.setValue("value");
118 additionalParam1.add(pair);
120 List<ResourceDefinition> additionalParam2 = new ArrayList<ResourceDefinition>();
121 additionalParam2.add(resource);
122 gresponse.setAdditionalParam(additionalParam2);
124 List<NslcmVimInfo> vim = new ArrayList<NslcmVimInfo>();
125 NslcmVimInfo vims=new NslcmVimInfo();
127 vims.setInterfaceEndpoint("interfaceEndpoint");
128 vims.setVimId("vimId");
129 List<AccessInfo> accessInfo = null;
130 vims.setAccessInfo(accessInfo);
131 List<InterfaceInfo> interfaceInfo = null;
132 vims.setInterfaceInfo(interfaceInfo);
135 VimAssets vimAssets = null;
136 gresponse.setVimAssets(vimAssets);
138 gresponse.setVim(vim);
139 String json = gson.toJson(gresponse);
140 HttpResult httpResult = new HttpResult();
141 httpResult.setContent(json);
143 when(httpClientProcessor.process(Mockito.anyString(), Mockito.any(RequestMethod.class), Mockito.any(HashMap.class), Mockito.anyString())).thenReturn(httpResult);
145 NslcmGrantVnfRequest cbamRequest = new NslcmGrantVnfRequest();
146 List<KeyValuePair> additionalParam = new ArrayList<KeyValuePair>();
147 pair = new KeyValuePair();
149 pair.setValue("value");
150 additionalParam.add(pair);
151 cbamRequest.setAdditionalParam(additionalParam);
154 List<ResourceDefinition> addResource = new ArrayList<ResourceDefinition>();
155 addResource.add(resource);
157 cbamRequest.setAddResource(addResource);
158 cbamRequest.setVnfInstanceId("vnfInstanceId");
159 cbamRequest.setJobId("jobId");
160 LifecycleOperation lifecycleOperation = CommonEnum.LifecycleOperation.Instantiate;
161 cbamRequest.setLifecycleOperation(lifecycleOperation);
162 cbamRequest.setRemoveResource(addResource);
164 NslcmGrantVnfResponse response = nslcmMgmr.grantVnf(cbamRequest);
168 public void testNotifyVnf() throws ClientProtocolException, IOException
171 HttpResult httpResult = new HttpResult();
172 httpResult.setContent(json);
174 when(httpClientProcessor.process(Mockito.anyString(), Mockito.any(RequestMethod.class), Mockito.any(HashMap.class), Mockito.anyString())).thenReturn(httpResult);
175 NslcmNotifyLCMEventsRequest cbamRequest = new NslcmNotifyLCMEventsRequest();
176 cbamRequest.setJobId("jobId");
177 cbamRequest.setOperation("operation");
178 cbamRequest.setVnfInstanceId(vnfInstanceId);
179 List<AffectedVirtualStorage> affectedVirtualStorage = new ArrayList<AffectedVirtualStorage>();
180 cbamRequest.setAffectedVirtualStorage(affectedVirtualStorage );
181 List<AffectedVnfc> affectedVnfc = new ArrayList<AffectedVnfc>();
182 cbamRequest.setAffectedVnfc(affectedVnfc );
183 nslcmMgmr.notifyVnf(cbamRequest, vnfInstanceId);