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);