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