Add modify vnf feature on driver
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / vfcadaptor / src / test / java / org / onap / vfc / nfvo / driver / vnfm / svnfm / nslcm / impl / NslcmMgmrImplTest.java
1 /*
2  * Copyright 2016-2017, Nokia Corporation
3  *
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
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
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.
15  */
16
17 package org.onap.vfc.nfvo.driver.vnfm.svnfm.nslcm.impl;
18
19 import static org.mockito.Mockito.when;
20
21 import java.io.IOException;
22 import java.util.ArrayList;
23 import java.util.HashMap;
24 import java.util.List;
25
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;
57
58 import com.google.gson.Gson;
59
60 public class NslcmMgmrImplTest {
61         @InjectMocks
62         private NslcmMgmrImpl nslcmMgmr;
63         
64         @Mock
65         private HttpClientProcessorInf httpClientProcessor;
66         
67         private String vnfInstanceId = "vnfInstanceId_001";
68         private String vnfmId = "vnfmId_001";
69         
70         private Gson gson = new Gson();
71         
72         @Before
73         public void setUp() throws Exception {
74                 MockitoAnnotations.initMocks(this);
75                 AdaptorEnv env = new AdaptorEnv();
76                 nslcmMgmr.setAdaptorEnv(env);
77                 MockitoAnnotations.initMocks(this);
78         }
79         
80         @Test
81         public void testGrantVnf() throws ClientProtocolException, IOException
82         {
83                 ResourceDefinition resource = new ResourceDefinition();
84                 resource.setVimId("vimId");
85                 resource.setVnfInstanceId("vnfInstanceId");
86                 
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");
110                 
111                 resource.setAdditionalParam(param);
112                 resource.setAddResource(addresources);
113                 
114                 NslcmGrantVnfResponse gresponse = new NslcmGrantVnfResponse();
115                 List<KeyValuePair> additionalParam1 = new ArrayList<KeyValuePair>();
116                 KeyValuePair pair = new KeyValuePair();
117                 pair.setKey("key");
118                 pair.setValue("value");
119                 additionalParam1.add(pair);
120                 
121                 List<ResourceDefinition> additionalParam2 = new ArrayList<ResourceDefinition>();
122                 additionalParam2.add(resource);
123                 gresponse.setAdditionalParam(additionalParam2);
124                 
125                 List<NslcmVimInfo> vim = new ArrayList<NslcmVimInfo>();
126                 NslcmVimInfo vims=new NslcmVimInfo();
127                 
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);
134                 
135                 vim.add(vims);
136                 VimAssets vimAssets = null;
137                 gresponse.setVimAssets(vimAssets);
138                 
139                 gresponse.setVim(vim);
140                 String json = gson.toJson(gresponse);
141                 HttpResult httpResult = new HttpResult();
142                 httpResult.setContent(json);
143                 
144                 when(httpClientProcessor.process(Mockito.anyString(), Mockito.any(RequestMethod.class), Mockito.any(HashMap.class), Mockito.anyString())).thenReturn(httpResult);
145                 
146                 NslcmGrantVnfRequest cbamRequest = new NslcmGrantVnfRequest();
147                 List<KeyValuePair> additionalParam = new ArrayList<KeyValuePair>();
148                 pair = new KeyValuePair();
149                 pair.setKey("key");
150                 pair.setValue("value");
151                 additionalParam.add(pair);
152                 cbamRequest.setAdditionalParam(additionalParam);
153                 
154                 
155                 List<ResourceDefinition> addResource = new ArrayList<ResourceDefinition>();
156                 addResource.add(resource);
157                 
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);
164                 
165                 NslcmGrantVnfResponse response = nslcmMgmr.grantVnf(cbamRequest);
166         }
167         
168         @Test
169         public void testNotifyVnf() throws ClientProtocolException, IOException
170         {
171                 String json = "{}";
172                 HttpResult httpResult = new HttpResult();
173                 httpResult.setContent(json);
174                 
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);
185         }
186 }