075f7ef8402798726e96eb74a049c22e16a8fbdd
[vfc/nfvo/driver/vnfm/svnfm.git] / huawei / vnfmadapter / VnfmadapterService / service / src / test / java / org / onap / vfc / nfvo / vnfm / svnfm / vnfmadapter / service / process / VnfMgrTest.java
1 /*
2  * Copyright 2016-2017 Huawei Technologies Co., Ltd.
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.vnfm.svnfm.vnfmadapter.service.process;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21
22 import java.util.Map;
23
24 import org.junit.Before;
25 import org.junit.Test;
26 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.ResultRequestUtil;
27 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.VnfmUtil;
28 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient.ServiceException;
29 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.adapter.impl.AdapterResourceManager;
30 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
31 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.vnf.VnfMgrVnfm;
32 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.dao.impl.VnfmDaoImpl;
33 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.dao.inf.VnfmDao;
34 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.entity.Vnfm;
35
36 import mockit.Mock;
37 import mockit.MockUp;
38 import net.sf.json.JSONArray;
39 import net.sf.json.JSONException;
40 import net.sf.json.JSONObject;
41
42 public class VnfMgrTest {
43
44     private VnfmDao vnfmDao;
45
46     private VnfMgr vnfMgr;
47
48     @Before
49     public void setUp() {
50         vnfMgr = new VnfMgr();
51         vnfmDao = new VnfmDaoImpl();
52         vnfMgr.setVnfmDao(vnfmDao);
53     }
54
55     @Test
56     public void testAddVnfByInvalidateDataVnfInfoNull() {
57         String data = "{}";
58         JSONObject subJsonObject = JSONObject.fromObject(data);
59         VnfMgr vnfMgr = new VnfMgr();
60         JSONObject result = vnfMgr.addVnf(subJsonObject, "vnmfId");
61
62         JSONObject restJson = new JSONObject();
63         restJson.put("retCode", Constant.REST_FAIL);
64         assertEquals(restJson, result);
65     }
66
67     @Test
68     public void testAddVnfByInvalidateDataVnfInfoEmpty() {
69         String data = "{}";
70         JSONObject subJsonObject = JSONObject.fromObject(data);
71         VnfMgr vnfMgr = new VnfMgr();
72         JSONObject result = vnfMgr.addVnf(subJsonObject, "vnmfId");
73
74         JSONObject restJson = new JSONObject();
75         restJson.put("retCode", Constant.REST_FAIL);
76         assertEquals(restJson, result);
77     }
78
79     @Test
80     public void testAddVnfByVnfmObjcetIsNullObject() {
81         new MockUp<VnfmUtil>() {
82
83             @Mock
84             public JSONObject getVnfmById(String vnfmId) {
85                 return new JSONObject(true);
86             }
87         };
88         String data =
89                 "{\"soId\": \"soId\",\"vapp_info\":{\"vnfm_id\":\"vnfm_id\",\"soId\": \"soId\",\"do_id\": \"do_id\"}}";
90         JSONObject subJsonObject = JSONObject.fromObject(data);
91         VnfMgr vnfMgr = new VnfMgr();
92         JSONObject result = vnfMgr.addVnf(subJsonObject, "vnmfId");
93
94         JSONObject restJson = new JSONObject();
95         restJson.put("retCode", Constant.REST_FAIL);
96         assertEquals(restJson, result);
97     }
98
99     @Test
100     public void testAddVnfByVnfmObjcetTypeEmpty() {
101         new MockUp<VnfmUtil>() {
102
103             @Mock
104             public JSONObject getVnfmById(String vnfmId) {
105                 JSONObject obj = new JSONObject();
106                 obj.put("type", "");
107                 return obj;
108             }
109         };
110         String data =
111                 "{\"soId\": \"soId\",\"vapp_info\":{\"vnfm_id\":\"vnfm_id\",\"soId\": \"soId\",\"do_id\": \"do_id\"}}";
112         JSONObject subJsonObject = JSONObject.fromObject(data);
113         VnfMgr vnfMgr = new VnfMgr();
114         JSONObject result = vnfMgr.addVnf(subJsonObject, "vnmfId");
115
116         JSONObject restJson = new JSONObject();
117         restJson.put("retCode", Constant.REST_FAIL);
118         assertEquals(restJson, result);
119     }
120
121     @Test
122     public void testAddVnf() {
123         new MockUp<VnfmUtil>() {
124
125             @Mock
126             public JSONObject getVnfmById(String vnfmId) {
127                 JSONObject obj = new JSONObject();
128                 obj.put("type", "hw");
129                 obj.put("vnfmId", "123");
130                 obj.put("userName", "admin");
131                 obj.put("password", "admin");
132                 obj.put("url", "https://10.2.31.2:30001");
133                 return obj;
134             }
135         };
136
137         new MockUp<VnfMgrVnfm>() {
138
139             @Mock
140             public JSONObject createVnf(JSONObject subJsonObject, JSONObject vnfmObjcet) {
141                 JSONObject restJson = new JSONObject();
142                 restJson.put("retCode", Constant.REST_SUCCESS);
143                 return restJson;
144             }
145         };
146
147         new MockUp<AdapterResourceManager>() {
148
149             @Mock
150             public JSONObject uploadVNFPackage(JSONObject subJsonObject, Map<String, String> conMap) {
151                 JSONObject restJson = new JSONObject();
152                 restJson.put("retCode", Constant.REST_SUCCESS);
153                 restJson.put("vnfdId", "123");
154                 return restJson;
155             }
156         };
157
158         String data =
159                 "{\"vnfPackageId\": \"vnfPackageId\",\"vnfId\": \"vnfId\",\"additionalParam\":{\"parameters\":{\"input\":\"input\"}}}";
160         JSONObject subJsonObject = JSONObject.fromObject(data);
161         VnfMgr vnfMgr = new VnfMgr();
162         JSONObject result = vnfMgr.addVnf(subJsonObject, "vnfmId");
163
164         JSONObject restJson = new JSONObject();
165         restJson.put("retCode", Constant.REST_FAIL);
166         assertEquals(restJson, result);
167     }
168
169     @Test
170     public void testDeleteVnf() {
171         new MockUp<VnfmUtil>() {
172
173             @Mock
174             public JSONObject getVnfmById(String vnfmId) {
175                 JSONObject obj = new JSONObject();
176                 obj.put("type", "hw");
177                 obj.put("vnfmId", "123");
178                 obj.put("userName", "admin");
179                 obj.put("password", "admin");
180                 obj.put("url", "https://10.2.31.2:30001");
181                 return obj;
182             }
183         };
184         new MockUp<VnfMgrVnfm>() {
185
186             @Mock
187             public JSONObject removeVnf(JSONObject vnfmObject, String vnfId, JSONObject vnfObject) {
188                 JSONObject obj = new JSONObject();
189                 obj.put("retCode", Constant.REST_SUCCESS);
190                 return obj;
191             }
192         };
193         VnfMgr vnfMgr = new VnfMgr();
194         JSONObject vnfObject = new JSONObject();
195         JSONObject result = vnfMgr.deleteVnf("vnfId", "vnfmId", vnfObject);
196
197         JSONObject restJson = new JSONObject();
198         restJson.put("retCode", Constant.REST_SUCCESS);
199         assertEquals(restJson, result);
200     }
201
202     @Test
203     public void testDeleteVnfByVnfmObjcetIsNullObject() {
204         new MockUp<VnfmUtil>() {
205
206             @Mock
207             public JSONObject getVnfmById(String vnfmId) {
208                 JSONObject obj = new JSONObject(true);
209                 return obj;
210             }
211         };
212         VnfMgr vnfMgr = new VnfMgr();
213         JSONObject vnfObject = new JSONObject();
214         JSONObject result = vnfMgr.deleteVnf("vnfId", "vnfmId", vnfObject);
215
216         JSONObject restJson = new JSONObject();
217         restJson.put("retCode", Constant.REST_FAIL);
218         assertEquals(restJson, result);
219
220     }
221
222     @Test
223     public void testDeleteVnfByException() {
224         new MockUp<VnfmUtil>() {
225
226             @Mock
227             public JSONObject getVnfmById(String vnfmId) {
228                 throw new JSONException();
229             }
230         };
231         VnfMgr vnfMgr = new VnfMgr();
232         JSONObject vnfObject = new JSONObject();
233         JSONObject result = vnfMgr.deleteVnf("vnfId", "vnfmId", vnfObject);
234
235         JSONObject restJson = new JSONObject();
236         restJson.put("retCode", Constant.REST_FAIL);
237         assertEquals(restJson, result);
238
239     }
240
241     @Test
242     public void testGetVnf() {
243         new MockUp<VnfmUtil>() {
244
245             @Mock
246             public JSONObject getVnfmById(String vnfmId) {
247                 JSONObject obj = new JSONObject();
248                 obj.put("type", "hw");
249                 obj.put("vnfmId", "123");
250                 obj.put("userName", "admin");
251                 obj.put("password", "admin");
252                 obj.put("url", "https://127.0.0.1:30001");
253                 return obj;
254             }
255         };
256
257         new MockUp<VnfmDaoImpl>() {
258
259             @Mock
260             public Vnfm getVnfmById(String vnfmId) {
261                 Vnfm obj = new Vnfm();
262                 obj.setId("123");
263                 obj.setVersion("v2.0");
264                 obj.setVnfdId("234");
265                 obj.setVnfPackageId("123");
266                 return obj;
267             }
268         };
269
270         new MockUp<ResultRequestUtil>() {
271
272             @Mock
273             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
274                 JSONObject resultJson = new JSONObject();
275                 resultJson.put("retCode", Constant.HTTP_OK);
276                 JSONObject data = new JSONObject();
277
278                 JSONArray result = new JSONArray();
279                 JSONObject basicInfo = new JSONObject();
280                 basicInfo.put("id", "NE=345");
281                 basicInfo.put("vapp_name", "sc");
282                 basicInfo.put("status", "active");
283                 result.add(basicInfo);
284                 data.put("basic", result);
285                 resultJson.put("data", data.toString());
286                 return resultJson;
287             }
288         };
289
290         JSONObject result = vnfMgr.getVnf("vnfId", "vnfmId");
291
292         JSONObject restJson = new JSONObject();
293         restJson.put("retCode", Constant.REST_SUCCESS);
294         result.remove("vnfInfo");
295         assertNotNull(result);
296     }
297
298     @Test
299     public void testGetVnfFail() {
300         new MockUp<VnfmUtil>() {
301
302             @Mock
303             public JSONObject getVnfmById(String vnfmId) {
304                 JSONObject obj = new JSONObject(true);
305                 return obj;
306             }
307         };
308
309         JSONObject result = vnfMgr.getVnf("vnfId", "vnfmId");
310         JSONObject restJson = new JSONObject();
311         restJson.put(Constant.RETCODE, Constant.REST_FAIL);
312         assertEquals(restJson, result);
313     }
314
315     @Test
316     public void testGetVnfFail1() {
317         new MockUp<VnfmUtil>() {
318
319             @Mock
320             public JSONObject getVnfmById(String vnfmId) {
321                 throw new JSONException();
322             }
323         };
324
325         JSONObject result = vnfMgr.getVnf("vnfId", "vnfmId");
326         JSONObject restJson = new JSONObject();
327         restJson.put(Constant.RETCODE, Constant.REST_FAIL);
328         assertEquals(restJson, result);
329     }
330
331     @Test
332     public void testSaveVnfInfo() {
333         new MockUp<VnfmDaoImpl>() {
334
335             @Mock
336             public int insertVnfm(Vnfm vnfm) throws ServiceException {
337                 return 1;
338             }
339         };
340
341         VnfMgr vnfMgr = new VnfMgr();
342         VnfmDao dao = new VnfmDaoImpl();
343         vnfMgr.setVnfmDao(dao);
344         JSONObject vnfObject = new JSONObject();
345         vnfObject.put("retCode", Constant.REST_SUCCESS);
346         vnfObject.put("vnfInstanceId", "vnfInstanceId");
347         vnfObject.put("vnfPackageId", "vnfPackageId");
348         JSONObject resObject = new JSONObject();
349         resObject.put("vnfdVersion", "vnfdVersion");
350         resObject.put("vnfdId", "vnfdId");
351         JSONObject data = new JSONObject();
352         data.put("data", resObject);
353         vnfMgr.saveVnfInfo(vnfObject, data);
354     }
355
356     @Test
357     public void testSaveVnfInfoFail() {
358         new MockUp<VnfmDaoImpl>() {
359
360             @Mock
361             public int insertVnfm(Vnfm vnfm) throws ServiceException {
362                 return 1;
363             }
364         };
365
366         VnfMgr vnfMgr = new VnfMgr();
367         VnfmDao dao = new VnfmDaoImpl();
368         vnfMgr.setVnfmDao(dao);
369         JSONObject vnfObject = new JSONObject();
370         vnfObject.put("retCode", Constant.REST_FAIL);
371         vnfObject.put("vnfInstanceId", "vnfInstanceId");
372         vnfObject.put("vnfPackageId", "vnfPackageId");
373         JSONObject resObject = new JSONObject();
374         resObject.put("vnfdVersion", "vnfdVersion");
375         resObject.put("vnfdId", "vnfdId");
376         vnfMgr.saveVnfInfo(vnfObject, resObject);
377     }
378
379     @Test
380     public void testSaveVnfInfoServiceException() {
381         new MockUp<VnfmDaoImpl>() {
382
383             @Mock
384             public int insertVnfm(Vnfm vnfm) throws ServiceException {
385                 throw new ServiceException();
386             }
387         };
388
389         VnfMgr vnfMgr = new VnfMgr();
390         VnfmDao dao = new VnfmDaoImpl();
391         vnfMgr.setVnfmDao(dao);
392         JSONObject vnfObject = new JSONObject();
393         vnfObject.put("retCode", Constant.REST_SUCCESS);
394         vnfObject.put("vnfInstanceId", "vnfInstanceId");
395         vnfObject.put("vnfPackageId", "vnfPackageId");
396         JSONObject resObject = new JSONObject();
397         resObject.put("vnfdVersion", "vnfdVersion");
398         resObject.put("vnfdId", "vnfdId");
399         JSONObject data = new JSONObject();
400         data.put("data", resObject);
401         vnfMgr.saveVnfInfo(vnfObject, data);
402     }
403
404     @Test
405     public void testGetJob() {
406         new MockUp<VnfmUtil>() {
407
408             @Mock
409             public JSONObject getVnfmById(String vnfmId) {
410                 JSONObject obj = new JSONObject();
411                 obj.put("test", "success");
412                 return obj;
413             }
414         };
415
416         new MockUp<VnfMgrVnfm>() {
417
418             @Mock
419             public JSONObject getJob(JSONObject vnfmObject, String jobId) {
420                 JSONObject res = new JSONObject();
421                 res.put(Constant.RETCODE, Constant.REST_SUCCESS);
422                 return res;
423             }
424         };
425         VnfMgr vnfMgr = new VnfMgr();
426         JSONObject result = vnfMgr.getJob("", "");
427
428         JSONObject restJson = new JSONObject();
429         restJson.put(Constant.RETCODE, Constant.REST_SUCCESS);
430         assertEquals(restJson, result);
431     }
432
433     @Test
434     public void testGetJobFail() {
435         new MockUp<VnfmUtil>() {
436
437             @Mock
438             public JSONObject getVnfmById(String vnfmId) {
439                 return new JSONObject();
440             }
441         };
442         VnfMgr vnfMgr = new VnfMgr();
443         JSONObject result = vnfMgr.getJob("", "");
444
445         JSONObject restJson = new JSONObject();
446         restJson.put(Constant.RETCODE, Constant.REST_FAIL);
447         assertEquals(restJson, result);
448     }
449
450     @Test
451     public void testGetJobFail1() {
452         new MockUp<VnfmUtil>() {
453
454             @Mock
455             public JSONObject getVnfmById(String vnfmId) {
456                 return new JSONObject(true);
457             }
458         };
459         VnfMgr vnfMgr = new VnfMgr();
460         JSONObject result = vnfMgr.getJob("", "");
461
462         JSONObject restJson = new JSONObject();
463         restJson.put(Constant.RETCODE, Constant.REST_FAIL);
464         assertEquals(restJson, result);
465     }
466
467     @Test
468     public void testScaleVnf() {
469         new MockUp<VnfmUtil>() {
470
471             @Mock
472             public JSONObject getVnfmById(String vnfmId) {
473                 JSONObject obj = new JSONObject();
474                 obj.put("type", "hw");
475                 obj.put("vnfmId", "123");
476                 obj.put("userName", "admin");
477                 obj.put("password", "admin");
478                 obj.put("url", "https://10.2.31.2:30001");
479                 return obj;
480             }
481         };
482
483         new MockUp<VnfMgrVnfm>() {
484
485             @Mock
486             public JSONObject scaleVnf(JSONObject vnfObject, JSONObject vnfmObject, String vnfmId,
487                     String vnfInstanceId) {
488                 JSONObject restJson = new JSONObject();
489                 restJson.put("retCode", Constant.REST_SUCCESS);
490                 return restJson;
491             }
492         };
493
494         String data =
495                 "{\"vnfPackageId\": \"vnfPackageId\",\"vnfId\": \"vnfId\",\"additionalParam\":{\"parameters\":{\"input\":\"input\"}}}";
496         JSONObject subJsonObject = JSONObject.fromObject(data);
497         VnfMgr vnfMgr = new VnfMgr();
498         JSONObject result = vnfMgr.scaleVNF(subJsonObject, "testId", "testId");
499
500         JSONObject restJson = new JSONObject();
501         restJson.put("retCode", Constant.REST_SUCCESS);
502         assertEquals(restJson, result);
503     }
504 }