/* * Copyright 2016 Huawei Technologies Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.vnf; import static org.junit.Assert.assertEquals; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import org.junit.Test; import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant; import net.sf.json.JSONArray; import net.sf.json.JSONObject; /** *
*

*

* * @author * @version VFC 1.0 Aug 10, 2016 */ public class VnfMgrVnfmTest { @Test public void testCreateVnf() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_CREATED); // JSONObject appInfo = new JSONObject(); // appInfo.put("vnfinstanceid", "id"); // appInfo.put("project_id", "project_id"); // JSONObject data = new JSONObject(); // data.put("app_info", appInfo); // resultJson.put("data", data); // return resultJson; // } // }; String data = "{\"vnfmInfo\":{\"url\":\"url\"}}"; JSONObject subJsonObject = JSONObject.fromObject(data); JSONObject vnfmObjcet = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet); assertEquals(Constant.REST_SUCCESS, result.get("retCode")); } @Test public void testCreateVnfByBadRequest() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_BAD_REQUEST); // return resultJson; // } // }; String data = "{\"vnfmInfo\":{\"url\":\"url\"}}"; JSONObject subJsonObject = JSONObject.fromObject(data); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObjcet = new JSONObject(); JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet); JSONObject resultJson = new JSONObject(); resultJson.put("retCode", Constant.REST_FAIL); assertEquals(resultJson, result); } @Test public void testCreateVnfByNotFound() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_NOTFOUND); // return resultJson; // } // }; String data = "{\"vnfmInfo\":{\"url\":\"url\"}}"; JSONObject subJsonObject = JSONObject.fromObject(data); JSONObject vnfmObjcet = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet); JSONObject resultJson = new JSONObject(); resultJson.put("retCode", Constant.REST_FAIL); assertEquals(resultJson, result); } @Test public void testCreateVnfByJSONException() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // return resultJson; // } // }; String data = "{\"vnfmInfo\":{\"url\":\"url\"}}"; JSONObject subJsonObject = JSONObject.fromObject(data); JSONObject vnfmObjcet = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject result = vnfMgrVnfm.createVnf(subJsonObject, vnfmObjcet); JSONObject resultJson = new JSONObject(); resultJson.put("retCode", Constant.REST_FAIL); assertEquals(resultJson, result); } @Test public void testRemoveVnf() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_NOCONTENT); // return resultJson; // } // }; VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObject = new JSONObject(); JSONObject vnfObject = new JSONObject(); vnfmObject.put("url", "url"); JSONObject result = vnfMgrVnfm.removeVnf(vnfmObject, "vnfId", vnfObject); JSONObject resultJson = new JSONObject(); resultJson.put("retCode", Constant.REST_SUCCESS); JSONObject retJson = new JSONObject(); retJson.put("jobId", "vnfId" + "_" + Constant.DELETE); resultJson.put("data", retJson); assertEquals(Constant.REST_SUCCESS, result.get("retCode")); } @Test public void testRemoveVnfByCsmError() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_INNERERROR); // return resultJson; // } // }; VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObject = new JSONObject(); vnfmObject.put("url", "url"); JSONObject vnfObject = new JSONObject(); JSONObject result = vnfMgrVnfm.removeVnf(vnfmObject, "vnfId", vnfObject); JSONObject resultJson = new JSONObject(); resultJson.put("retCode", Constant.REST_FAIL); assertEquals(resultJson, result); } @Test public void getJobTestNormal(){ // new MockUp(){ // @Mock // public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) { // JSONObject obj = new JSONObject(); // JSONObject dataobj = new JSONObject(); // dataobj.put("id", "2839"); // obj.put("retCode", 200); // JSONArray basics = new JSONArray(); // basics.add("test123"); // JSONObject basicsData = new JSONObject(); // basicsData.put("vnf_list", basics); // obj.put("data", basicsData); // return obj; // } // // }; VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObject = new JSONObject(); String jobId = "1234"; JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId); assertEquals(resp.get("retCode"),1); } @Test public void getJobTestCreatedNormal(){ // new MockUp(){ // @Mock // public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) { // JSONObject obj = new JSONObject(); // JSONObject dataobj = new JSONObject(); // dataobj.put("id", "2839"); // obj.put("retCode", 201); // JSONArray basics = new JSONArray(); // basics.add("test123"); // JSONObject basicsData = new JSONObject(); // basicsData.put("vnf_list", basics); // obj.put("data", basicsData); // return obj; // } // // }; VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObject = new JSONObject(); String jobId = "1234"; JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId); assertEquals(resp.get("retCode"),1); } @Test public void getJobTestNullData(){ // new MockUp(){ // @Mock // public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) { // JSONObject obj = new JSONObject(); // JSONObject dataobj = new JSONObject(); // dataobj.put("id", "2839"); // obj.put("retCode", 201); // JSONArray basics = new JSONArray(); // basics.add("test123"); // JSONObject basicsData = new JSONObject(); // basicsData.put("basic", basics); // obj.put("data", null); // return obj; // } // // }; VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObject = new JSONObject(); String jobId = "1234"; JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId); assertEquals(resp.get("retCode"),-1); } @Test public void getJobTestInternalError(){ // new MockUp(){ // @Mock // public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson, String authModel) { // JSONObject obj = new JSONObject(); // JSONObject dataobj = new JSONObject(); // dataobj.put("id", "2839"); // obj.put("retCode", 500); // JSONArray basics = new JSONArray(); // basics.add("test123"); // JSONObject basicsData = new JSONObject(); // basicsData.put("basic", basics); // obj.put("data", null); // return obj; // } // // }; VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject vnfmObject = new JSONObject(); String jobId = "1234"; JSONObject resp = vnfMgrVnfm.getJob(vnfmObject, jobId); assertEquals(resp.get("retCode"),-1); } @Test public void testScaleVnfOut() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_CREATED); // JSONObject appInfo = new JSONObject(); // appInfo.put("vnfinstanceid", "id"); // appInfo.put("project_id", "project_id"); // JSONObject data = new JSONObject(); // data.put("app_info", appInfo); // resultJson.put("data", data); // return resultJson; // } // }; String data = "{\"type\":\"SCALE_OUT\"}}"; JSONObject subJsonObject = JSONObject.fromObject(data); JSONObject vnfmObjcet = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject result = vnfMgrVnfm.scaleVnf(subJsonObject,vnfmObjcet,"test123","test123"); assertEquals(Constant.REST_SUCCESS, result.get("retCode")); } @Test public void testScaleVnfIn() { // new MockUp() { // // @Mock // public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) { // JSONObject resultJson = new JSONObject(); // resultJson.put("retCode", Constant.HTTP_CREATED); // JSONObject appInfo = new JSONObject(); // appInfo.put("vnfinstanceid", "id"); // appInfo.put("project_id", "project_id"); // JSONObject data = new JSONObject(); // data.put("app_info", appInfo); // resultJson.put("data", data); // return resultJson; // } // }; // // new MockUp() { // // @Mock // public JSONObject readScaleInVmIdFromJson() { // JSONObject resultJson = new JSONObject(); // JSONArray vm_list = new JSONArray(); // resultJson.put("vm_list", vm_list); // return resultJson; // } // }; String data = "{\"type\":\"SCALE_IN\"}}"; JSONObject subJsonObject = JSONObject.fromObject(data); JSONObject vnfmObjcet = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); JSONObject result = vnfMgrVnfm.scaleVnf(subJsonObject,vnfmObjcet,"test123","test123"); assertEquals(Constant.REST_SUCCESS, result.get("retCode")); } @Test public void getVduType() throws Exception { JSONObject vnfmObject = new JSONObject(); JSONObject queryResult = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("getVduType", new Class[] { JSONObject.class, JSONObject.class }); m.setAccessible(true); m.invoke(vnfMgrVnfm, vnfmObject, queryResult); } @Test public void getScaleTypeScaleOut() throws Exception { VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("getScaleType", new Class[] { String.class }); m.setAccessible(true); m.invoke(vnfMgrVnfm, "SCALE_OUT"); } @Test public void getScaleType() throws Exception { VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("getScaleType", new Class[] { String.class }); m.setAccessible(true); m.invoke(vnfMgrVnfm, "SCALE_IN"); } @Test public void getScaleTypeNoMatch() throws Exception { VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("getScaleType", new Class[] { String.class }); m.setAccessible(true); m.invoke(vnfMgrVnfm, "getScaleType"); } @Test public void handleResponseWithJobId() throws Exception { JSONObject result = new JSONObject(); JSONObject returnObj = new JSONObject(); returnObj.put("job_id", "job_id"); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("handleResponse", new Class[] { JSONObject.class, JSONObject.class, String.class, String.class }); m.setAccessible(true); m.invoke(vnfMgrVnfm, result, returnObj, "vnfInstanceId", "type"); } @Test public void handleResponse() throws Exception { JSONObject result = new JSONObject(); JSONObject returnObj = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("handleResponse", new Class[] { JSONObject.class, JSONObject.class, String.class, String.class }); m.setAccessible(true); m.invoke(vnfMgrVnfm, result, returnObj, "vnfInstanceId", "type"); } @Test public void getNativeVmId() throws Exception { JSONObject returnObj = new JSONObject(); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); Method m = VnfMgrVnfm.class.getDeclaredMethod("getNativeVmId", new Class[] {String.class , JSONObject.class, String.class, }); m.setAccessible(true); m.invoke(vnfMgrVnfm, "vnfInstanceId", returnObj, "type"); } @Test public void healVnf() { JSONObject json = new JSONObject(); JSONObject affectedvm = new JSONObject(); affectedvm.put("vmid","vmid" ); json.put("affectedvm",affectedvm ); json.put("action", "action"); json.put("url","url"); json.put(Constant.USERNAME, Constant.USERNAME); json.put(Constant.PASSWORD,Constant.PASSWORD); VnfMgrVnfm vnfMgrVnfm = new VnfMgrVnfm(); vnfMgrVnfm.healVnf(json, json, "vnfmId", "vnfInstanceId"); } }