validate VNF scale in and out
[vfc/nfvo/driver/vnfm/svnfm.git] / huawei / vnfmadapter / VnfmadapterService / service / src / test / java / org / onap / vfc / nfvo / vnfm / svnfm / vnfmadapter / service / csm / vnf / VnfMgrVnfmTest.java
1 /*
2  * Copyright 2016 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.csm.vnf;
18
19 import static org.junit.Assert.assertEquals;
20
21 import org.junit.Test;
22 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.ResultRequestUtil;
23 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.adapter.impl.AdapterResourceManager;
24 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
25
26 import mockit.Mock;
27 import mockit.MockUp;
28 import net.sf.json.JSONArray;
29 import net.sf.json.JSONObject;
30
31 /**
32  * <br/>
33  * <p>
34  * </p>
35  *
36  * @author
37  * @version VFC 1.0 Aug 10, 2016
38  */
39 public class VnfMgrVnfmTest {
40
41     @Test
42     public void testCreateVnf() {
43         new MockUp<ResultRequestUtil>() {
44
45             @Mock
46             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
47                 JSONObject resultJson = new JSONObject();
48                 resultJson.put("retCode", Constant.HTTP_CREATED);
49                 JSONObject appInfo = new JSONObject();
50                 appInfo.put("vnfinstanceid", "id");
51                 appInfo.put("project_id", "project_id");
52                 JSONObject data = new JSONObject();
53                 data.put("app_info", appInfo);
54                 resultJson.put("data", data);
55                 return resultJson;
56             }
57         };
58
59
60         String data = "{\"vnfmInfo\":{\"url\":\"url\"}}";
61         JSONObject subJsonObject = JSONObject.fromObject(data);
62         JSONObject vnfmObjcet = new JSONObject();
63         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
64         JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet);
65
66         assertEquals(Constant.REST_SUCCESS, result.get("retCode"));
67     }
68
69     @Test
70     public void testCreateVnfByBadRequest() {
71         new MockUp<ResultRequestUtil>() {
72
73             @Mock
74             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
75                 JSONObject resultJson = new JSONObject();
76                 resultJson.put("retCode", Constant.HTTP_BAD_REQUEST);
77                 return resultJson;
78             }
79         };
80         String data = "{\"vnfmInfo\":{\"url\":\"url\"}}";
81         JSONObject subJsonObject = JSONObject.fromObject(data);
82         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
83         JSONObject vnfmObjcet = new JSONObject();
84         JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet);
85
86         JSONObject resultJson = new JSONObject();
87         resultJson.put("retCode", Constant.REST_FAIL);
88         assertEquals(resultJson, result);
89     }
90
91     @Test
92     public void testCreateVnfByNotFound() {
93         new MockUp<ResultRequestUtil>() {
94
95             @Mock
96             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
97                 JSONObject resultJson = new JSONObject();
98                 resultJson.put("retCode", Constant.HTTP_NOTFOUND);
99                 return resultJson;
100             }
101         };
102         String data = "{\"vnfmInfo\":{\"url\":\"url\"}}";
103         JSONObject subJsonObject = JSONObject.fromObject(data);
104         JSONObject vnfmObjcet = new JSONObject();
105         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
106         JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet);
107
108         JSONObject resultJson = new JSONObject();
109         resultJson.put("retCode", Constant.REST_FAIL);
110         assertEquals(resultJson, result);
111     }
112
113     @Test
114     public void testCreateVnfByJSONException() {
115         new MockUp<ResultRequestUtil>() {
116
117             @Mock
118             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
119                 JSONObject resultJson = new JSONObject();
120                 return resultJson;
121             }
122         };
123         String data = "{\"vnfmInfo\":{\"url\":\"url\"}}";
124         JSONObject subJsonObject = JSONObject.fromObject(data);
125         JSONObject vnfmObjcet = new JSONObject();
126         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
127         JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet);
128
129         JSONObject resultJson = new JSONObject();
130         resultJson.put("retCode", Constant.REST_FAIL);
131         assertEquals(resultJson, result);
132     }
133
134     @Test
135     public void testRemoveVnf() {
136         new MockUp<ResultRequestUtil>() {
137
138             @Mock
139             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
140                 JSONObject resultJson = new JSONObject();
141                 resultJson.put("retCode", Constant.HTTP_NOCONTENT);
142                 return resultJson;
143             }
144         };
145         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
146         JSONObject vnfmObject = new JSONObject();
147         JSONObject vnfObject = new JSONObject();
148         vnfmObject.put("url", "url");
149         JSONObject result = vnfMgrVnfm.removeVnf(vnfmObject, "vnfId", vnfObject);
150
151         JSONObject resultJson = new JSONObject();
152         resultJson.put("retCode", Constant.REST_SUCCESS);
153         JSONObject retJson = new JSONObject();
154         retJson.put("jobId", "vnfId" + "_" + Constant.DELETE);
155         resultJson.put("data", retJson);
156         assertEquals(Constant.REST_SUCCESS, result.get("retCode"));
157     }
158
159     @Test
160     public void testRemoveVnfByCsmError() {
161         new MockUp<ResultRequestUtil>() {
162
163             @Mock
164             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
165                 JSONObject resultJson = new JSONObject();
166                 resultJson.put("retCode", Constant.HTTP_INNERERROR);
167                 return resultJson;
168             }
169         };
170         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
171         JSONObject vnfmObject = new JSONObject();
172         vnfmObject.put("url", "url");
173         JSONObject vnfObject = new JSONObject();
174         JSONObject result = vnfMgrVnfm.removeVnf(vnfmObject, "vnfId", vnfObject);
175
176         JSONObject resultJson = new JSONObject();
177         resultJson.put("retCode", Constant.REST_FAIL);
178         assertEquals(resultJson, result);
179     }
180     @Test
181     public void getJobTestNormal(){
182         new MockUp<ResultRequestUtil>(){
183             @Mock
184             public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) {
185                 JSONObject obj = new JSONObject();
186                 JSONObject dataobj = new JSONObject();
187                 dataobj.put("id", "2839");
188                 obj.put("retCode", 200);
189                 JSONArray basics = new JSONArray();
190                 basics.add("test123");
191                 JSONObject basicsData = new JSONObject();
192                 basicsData.put("vnf_list", basics);
193                 obj.put("data", basicsData);
194                 return obj;
195             }
196
197         };
198         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
199         JSONObject vnfmObject = new JSONObject();
200
201         String jobId = "1234";
202         JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId);
203         assertEquals(resp.get("retCode"),1);
204     }
205
206     @Test
207     public void getJobTestCreatedNormal(){
208         new MockUp<ResultRequestUtil>(){
209             @Mock
210             public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) {
211                 JSONObject obj = new JSONObject();
212                 JSONObject dataobj = new JSONObject();
213                 dataobj.put("id", "2839");
214                 obj.put("retCode", 201);
215                 JSONArray basics = new JSONArray();
216                 basics.add("test123");
217                 JSONObject basicsData = new JSONObject();
218                 basicsData.put("vnf_list", basics);
219                 obj.put("data", basicsData);
220                 return obj;
221             }
222
223         };
224         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
225         JSONObject vnfmObject = new JSONObject();
226
227         String jobId = "1234";
228         JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId);
229         assertEquals(resp.get("retCode"),1);
230     }
231
232     @Test
233     public void getJobTestNullData(){
234         new MockUp<ResultRequestUtil>(){
235             @Mock
236             public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) {
237                 JSONObject obj = new JSONObject();
238                 JSONObject dataobj = new JSONObject();
239                 dataobj.put("id", "2839");
240                 obj.put("retCode", 201);
241                 JSONArray basics = new JSONArray();
242                 basics.add("test123");
243                 JSONObject basicsData = new JSONObject();
244                 basicsData.put("basic", basics);
245                 obj.put("data", null);
246                 return obj;
247             }
248
249         };
250         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
251         JSONObject vnfmObject = new JSONObject();
252
253         String jobId = "1234";
254         JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId);
255         assertEquals(resp.get("retCode"),-1);
256     }
257
258     @Test
259     public void getJobTestInternalError(){
260         new MockUp<ResultRequestUtil>(){
261             @Mock
262             public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) {
263                 JSONObject obj = new JSONObject();
264                 JSONObject dataobj = new JSONObject();
265                 dataobj.put("id", "2839");
266                 obj.put("retCode", 500);
267                 JSONArray basics = new JSONArray();
268                 basics.add("test123");
269                 JSONObject basicsData = new JSONObject();
270                 basicsData.put("basic", basics);
271                 obj.put("data", null);
272                 return obj;
273             }
274
275         };
276         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
277         JSONObject vnfmObject = new JSONObject();
278
279         String jobId = "1234";
280         JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId);
281         assertEquals(resp.get("retCode"),-1);
282     }
283
284
285     @Test
286     public void testScaleVnfOut() {
287         new MockUp<ResultRequestUtil>() {
288
289             @Mock
290             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
291                 JSONObject resultJson = new JSONObject();
292                 resultJson.put("retCode", Constant.HTTP_CREATED);
293                 JSONObject appInfo = new JSONObject();
294                 appInfo.put("vnfinstanceid", "id");
295                 appInfo.put("project_id", "project_id");
296                 JSONObject data = new JSONObject();
297                 data.put("app_info", appInfo);
298                 resultJson.put("data", data);
299                 return resultJson;
300             }
301         };
302         String data = "{\"type\":\"SCALE_OUT\"}}";
303         JSONObject subJsonObject = JSONObject.fromObject(data);
304         JSONObject vnfmObjcet = new JSONObject();
305         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
306         JSONObject result = vnfMgrVnfm.scaleVnf(subJsonObject,vnfmObjcet,"test123","test123");
307
308         assertEquals(Constant.REST_SUCCESS, result.get("retCode"));
309     }
310
311     @Test
312     public void testScaleVnfIn() {
313         new MockUp<ResultRequestUtil>() {
314
315             @Mock
316             public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
317                 JSONObject resultJson = new JSONObject();
318                 resultJson.put("retCode", Constant.HTTP_CREATED);
319                 JSONObject appInfo = new JSONObject();
320                 appInfo.put("vnfinstanceid", "id");
321                 appInfo.put("project_id", "project_id");
322                 JSONObject data = new JSONObject();
323                 data.put("app_info", appInfo);
324                 resultJson.put("data", data);
325                 return resultJson;
326             }
327         };
328
329         new MockUp<AdapterResourceManager>() {
330
331             @Mock
332             public JSONObject readScaleInVmIdFromJson() {
333                 JSONObject resultJson = new JSONObject();
334                 JSONArray vm_list = new JSONArray();
335                 resultJson.put("vm_list", vm_list);
336                 return resultJson;
337             }
338         };
339         String data = "{\"type\":\"SCALE_IN\"}}";
340         JSONObject subJsonObject = JSONObject.fromObject(data);
341         JSONObject vnfmObjcet = new JSONObject();
342         VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm();
343         JSONObject result = vnfMgrVnfm.scaleVnf(subJsonObject,vnfmObjcet,"test123","test123");
344
345         assertEquals(Constant.REST_SUCCESS, result.get("retCode"));
346     }
347 }