/*
* 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 org.junit.Test;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.ResultRequestUtil;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.adapter.impl.AdapterResourceManager;
import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
import mockit.Mock;
import mockit.MockUp;
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"));
}
}