2  * Copyright 2016-2017 Huawei Technologies Co., Ltd.
 
   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
 
   8  *     http://www.apache.org/licenses/LICENSE-2.0
 
  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.
 
  17 package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.rest;
 
  19 import static org.junit.Assert.assertEquals;
 
  20 import static org.junit.Assert.assertNotNull;
 
  22 import java.io.IOException;
 
  24 import javax.servlet.http.HttpServletRequest;
 
  25 import javax.servlet.http.HttpServletResponse;
 
  27 import org.junit.After;
 
  28 import org.junit.Before;
 
  29 import org.junit.Test;
 
  30 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.VnfmJsonUtil;
 
  31 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.VnfmUtil;
 
  32 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.common.restclient.ServiceException;
 
  33 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
 
  34 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.process.VnfMgr;
 
  38 import net.sf.json.JSONArray;
 
  39 import net.sf.json.JSONObject;
 
  41 public class VnfRoaTest {
 
  43     private VnfRoa vnfRoa;
 
  45     private VnfMgr vnfMgr;
 
  49         vnfRoa = new VnfRoa();
 
  50         vnfMgr = new VnfMgr();
 
  51         vnfRoa.setVnfMgr(vnfMgr);
 
  55     public void tearDown() {
 
  61     public void testAddVnf() throws ServiceException {
 
  62         final JSONObject restJson = new JSONObject();
 
  63         restJson.put("retCode", Constant.REST_SUCCESS);
 
  64         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
  65         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
  67         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
  68         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
  70         new MockUp<VnfMgr>() {
 
  73             public JSONObject addVnf(JSONObject subJsonObject, String vnfmId) {
 
  74                 JSONObject retJson = new JSONObject();
 
  75                 retJson.put("id", "123");
 
  76                 restJson.put("data", retJson);
 
  80         new MockUp<VnfmJsonUtil>() {
 
  82             @SuppressWarnings("unchecked")
 
  84             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
  89         String result = vnfRoa.addVnf(mockInstance, mockResInstance, "vnfmId");
 
  91         JSONObject retJson = new JSONObject();
 
  92         retJson.put("id", "123");
 
  93         assertEquals(retJson.toString(), result);
 
  98     public void testAddVnfFail() throws ServiceException {
 
  99         final JSONObject restJson = new JSONObject();
 
 100         restJson.put("retCode", Constant.REST_FAIL);
 
 101         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 102         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 104         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 105         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 107         new MockUp<VnfMgr>() {
 
 110             public JSONObject addVnf(JSONObject subJsonObject, String vnfmId) {
 
 114         new MockUp<VnfmJsonUtil>() {
 
 116             @SuppressWarnings("unchecked")
 
 118             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 123         String result = vnfRoa.addVnf(mockInstance, mockResInstance, "vnfmId");
 
 125         assertEquals(restJson.toString(), result);
 
 130     public void testAddVnfBySubJsonObjectNull() throws ServiceException {
 
 131         final JSONObject restJson = new JSONObject();
 
 132         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 133         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 135         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 136         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 138         new MockUp<VnfmJsonUtil>() {
 
 141             public <T> T getJsonFromContexts(HttpServletRequest context) {
 
 146         String result = vnfRoa.addVnf(mockInstance, mockResInstance, "vnfmId");
 
 148         assertEquals(restJson.toString(), result);
 
 153     public void testDelVnf() throws ServiceException {
 
 154         final JSONObject restJson = new JSONObject();
 
 155         restJson.put("retCode", Constant.REST_SUCCESS);
 
 156         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 157         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 159         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 160         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 162         new MockUp<VnfMgr>() {
 
 165             public JSONObject deleteVnf(String vnfId, String vnfmId, JSONObject vnfObject) {
 
 166                 JSONObject retJson = new JSONObject();
 
 167                 retJson.put("id", "123");
 
 168                 restJson.put("data", retJson);
 
 173         new MockUp<VnfmJsonUtil>() {
 
 175             @SuppressWarnings("unchecked")
 
 177             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 182         String result = vnfRoa.delVnf("vnfmId", mockResInstance, "vnfId", mockInstance);
 
 183         JSONObject retJson = new JSONObject();
 
 184         retJson.put("id", "123");
 
 185         assertEquals(retJson.toString(), result);
 
 189     public void testDelVnfByVnfIdIsEmpty() throws ServiceException {
 
 190         final JSONObject restJson = new JSONObject();
 
 191         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 192         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 194         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 195         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 197         new MockUp<VnfmJsonUtil>() {
 
 199             @SuppressWarnings("unchecked")
 
 201             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 206         String result = vnfRoa.delVnf("vnfmId", mockResInstance, "", mockInstance);
 
 208         assertEquals(restJson.toString(), result);
 
 212     public void testDelVnfByVnfmIdIsEmpty() throws ServiceException {
 
 213         final JSONObject restJson = new JSONObject();
 
 214         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 215         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 217         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 218         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 220         new MockUp<VnfmJsonUtil>() {
 
 222             @SuppressWarnings("unchecked")
 
 224             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 229         String result = vnfRoa.delVnf("", mockResInstance, "vnfId", mockInstance);
 
 231         assertEquals(restJson.toString(), result);
 
 235     public void testDelVnfByVnfIdVnfmIdEmpty() throws ServiceException {
 
 236         final JSONObject restJson = new JSONObject();
 
 237         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 238         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 240         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 241         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 243         new MockUp<VnfmJsonUtil>() {
 
 245             @SuppressWarnings("unchecked")
 
 247             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 252         String result = vnfRoa.delVnf("", mockResInstance, "", mockInstance);
 
 254         assertEquals(restJson.toString(), result);
 
 258     public void testDelVnfFail() throws ServiceException {
 
 259         final JSONObject restJson = new JSONObject();
 
 260         restJson.put("retCode", Constant.REST_FAIL);
 
 261         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 262         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 264         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 265         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 267         new MockUp<VnfMgr>() {
 
 270             public JSONObject deleteVnf(String vnfId, String vnfmId, JSONObject vnfObject) {
 
 275         new MockUp<VnfmJsonUtil>() {
 
 277             @SuppressWarnings("unchecked")
 
 279             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 284         String result = vnfRoa.delVnf("vnfmId", mockResInstance, "vnfId", mockInstance);
 
 285         assertEquals(restJson.toString(), result);
 
 289     public void testGetVnfByVnfIdIsEmpty() throws IOException, ServiceException {
 
 290         final JSONObject restJson = new JSONObject();
 
 291         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 292         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 294         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 295         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 297         new MockUp<VnfmJsonUtil>() {
 
 299             @SuppressWarnings("unchecked")
 
 301             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 306         String result = vnfRoa.getVnf("vnfmId", mockResInstance, "");
 
 308         assertEquals(restJson.toString(), result);
 
 312     public void testGetVnfByVnfmIdIsEmpty() throws IOException, ServiceException {
 
 313         final JSONObject restJson = new JSONObject();
 
 314         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 315         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 317         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 318         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 320         new MockUp<VnfmJsonUtil>() {
 
 322             @SuppressWarnings("unchecked")
 
 324             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 329         String result = vnfRoa.getVnf("", mockResInstance, "vnfId");
 
 331         assertEquals(restJson.toString(), result);
 
 335     public void testGetVnfFail() throws IOException, ServiceException {
 
 336         final JSONObject restJson = new JSONObject();
 
 337         restJson.put("retCode", Constant.REST_FAIL);
 
 338         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 339         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 341         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 342         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 344         new MockUp<VnfMgr>() {
 
 347             public JSONObject getVnf(String vnfId, String vnfmId) {
 
 352         new MockUp<VnfmJsonUtil>() {
 
 354             @SuppressWarnings("unchecked")
 
 356             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 361         String result = vnfRoa.getVnf("vnfmId", mockResInstance, "vnfId");
 
 362         assertEquals(restJson.toString(), result);
 
 366     public void testGetVnf() throws IOException, ServiceException {
 
 367         final JSONObject restJson = new JSONObject();
 
 368         restJson.put("retCode", Constant.REST_SUCCESS);
 
 369         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 370         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 372         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 373         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 375         new MockUp<VnfMgr>() {
 
 378             public JSONObject getVnf(String vnfId, String vnfmId) {
 
 379                 JSONObject retJson = new JSONObject();
 
 380                 JSONObject basicInfoJson = new JSONObject();
 
 381                 basicInfoJson.put("vnfInstanceId", "123");
 
 382                 basicInfoJson.put("vnfInstanceName", "1");
 
 383                 basicInfoJson.put("vnfInstanceDescription", "vFW");
 
 384                 basicInfoJson.put("vnfdId", "1");
 
 385                 basicInfoJson.put("vnfdPackageId", "vFW");
 
 386                 basicInfoJson.put("version", "vFW");
 
 387                 basicInfoJson.put("vnfProvider", "hw");
 
 388                 basicInfoJson.put("vnfType", "fw");
 
 389                 basicInfoJson.put("vnfStatus", "active");
 
 390                 retJson.put("vnfInfo", basicInfoJson);
 
 391                 retJson.put(Constant.RETCODE, Constant.REST_SUCCESS);
 
 396         new MockUp<VnfmJsonUtil>() {
 
 398             @SuppressWarnings("unchecked")
 
 400             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 405         String result = vnfRoa.getVnf("vnfmId", mockResInstance, "vnfId");
 
 406         JSONObject basicInfoJson = new JSONObject();
 
 407         JSONObject retJson = new JSONObject();
 
 408         basicInfoJson.put("vnfInstanceId", "123");
 
 409         basicInfoJson.put("vnfInstanceName", "1");
 
 410         basicInfoJson.put("vnfInstanceDescription", "vFW");
 
 411         basicInfoJson.put("vnfdId", "1");
 
 412         basicInfoJson.put("vnfdPackageId", "vFW");
 
 413         basicInfoJson.put("version", "vFW");
 
 414         basicInfoJson.put("vnfProvider", "hw");
 
 415         basicInfoJson.put("vnfType", "fw");
 
 416         basicInfoJson.put("vnfStatus", "active");
 
 417         retJson.put("vnfInfo", basicInfoJson);
 
 418         assertEquals(retJson.toString(), result);
 
 422     public void testGetJobByJobIdNull() throws ServiceException {
 
 423         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 424         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 426         String result = vnfRoa.getJob(null, null, mockResInstance, "1111");
 
 427         assertEquals("{}", result);
 
 431     public void testGetJobByVnfmIdNull() throws ServiceException {
 
 432         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 433         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 435         String result = vnfRoa.getJob("123", null, mockResInstance, "1111");
 
 436         assertEquals("{}", result);
 
 440     public void testGetJobByVnfMgrFail() throws ServiceException {
 
 441         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 442         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 443         new MockUp<VnfMgr>() {
 
 446             public JSONObject getJob(String jobId, String vnfmId) {
 
 447                 JSONObject restJson = new JSONObject();
 
 448                 restJson.put(Constant.RETCODE, Constant.REST_FAIL);
 
 452         String result = vnfRoa.getJob("123", "1234", mockResInstance, "1111");
 
 453         assertEquals("{\"retCode\":-1}", result);
 
 457     public void testGetJob() throws ServiceException {
 
 458         new MockUp<VnfMgr>() {
 
 461             public JSONObject getJob(String jobId, String vnfmId) {
 
 462                 JSONObject restJson = new JSONObject();
 
 463                 JSONArray data = new JSONArray();
 
 464                 JSONObject obj = new JSONObject();
 
 465                 obj.put("id", "11111");
 
 466                 obj.put("status", "Active");
 
 468                 restJson.put(Constant.RETCODE, Constant.REST_SUCCESS);
 
 469                 restJson.put("data", data);
 
 474         String result = vnfRoa.getJob("123", "1234", null, "1111");
 
 475         assertNotNull(result);
 
 479     public void testHealVnf() throws ServiceException {
 
 480         final JSONObject restJson = new JSONObject();
 
 481         restJson.put("retCode", Constant.REST_SUCCESS);
 
 482         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 483         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 485         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 486         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 488         new MockUp<VnfMgr>() {
 
 491             public JSONObject healVnf(JSONObject jsonObject, String vnfInstanceId, String vnfmId)  {
 
 492                 JSONObject retJson = new JSONObject();
 
 493                 retJson.put("id", "123");
 
 494                 restJson.put("data", retJson);
 
 498         new MockUp<VnfmJsonUtil>() {
 
 500             @SuppressWarnings("unchecked")
 
 502             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 507         String result = vnfRoa.healVnf(mockInstance, mockResInstance, "id", "id");
 
 508         assertNotNull(result);
 
 513     public void testScaleVnf() throws ServiceException {
 
 514         final JSONObject restJson = new JSONObject();
 
 515         restJson.put("retCode", Constant.REST_SUCCESS);
 
 516         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 517         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 519         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 520         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 522         new MockUp<VnfMgr>() {
 
 525             public JSONObject scaleVNF(JSONObject vnfObject, String vnfmId, String vnfInstanceId) {
 
 526                 JSONObject retJson = new JSONObject();
 
 527                 retJson.put("id", "123");
 
 528                 restJson.put("data", retJson);
 
 532         new MockUp<VnfmJsonUtil>() {
 
 534             @SuppressWarnings("unchecked")
 
 536             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 541         String result = vnfRoa.scaleVnf(mockInstance, mockResInstance, "id", "id");
 
 543         JSONObject retJson = new JSONObject();
 
 544         retJson.put("id", "123");
 
 545         assertEquals(retJson.toString(), result);
 
 550     public void testScaleVnfFail() throws ServiceException {
 
 551         final JSONObject restJson = new JSONObject();
 
 552         restJson.put("retCode", Constant.REST_FAIL);
 
 553         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 554         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 556         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 557         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 559         new MockUp<VnfMgr>() {
 
 562             public JSONObject scaleVNF(JSONObject vnfObject, String vnfmId, String vnfInstanceId) {
 
 563                 JSONObject retJson = new JSONObject();
 
 564                 retJson.put("id", "123");
 
 565                 restJson.put("data", retJson);
 
 569         new MockUp<VnfmJsonUtil>() {
 
 571             @SuppressWarnings("unchecked")
 
 573             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 577         String result = vnfRoa.scaleVnf(mockInstance, mockResInstance, "id", "id");
 
 579         assertEquals(restJson.toString(), result);
 
 584     public void testScaleVnfFail2() throws ServiceException {
 
 585         final JSONObject restJson = new JSONObject();
 
 586         restJson.put("retCode", Constant.REST_FAIL);
 
 587         MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
 
 588         HttpServletRequest mockInstance = proxyStub.getMockInstance();
 
 590         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 591         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 593         new MockUp<VnfMgr>() {
 
 596             public JSONObject scaleVNF(JSONObject vnfObject, String vnfmId, String vnfInstanceId) {
 
 597                 JSONObject retJson = new JSONObject();
 
 598                 retJson.put("id", "123");
 
 599                 restJson.put("data", retJson);
 
 603         new MockUp<VnfmJsonUtil>() {
 
 605             @SuppressWarnings("unchecked")
 
 607             public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
 
 611         String result = vnfRoa.scaleVnf(mockInstance, mockResInstance, "id", "id");
 
 613         assertNotNull(result);
 
 618     public void testGetVnfmById() throws ServiceException {
 
 619         new MockUp<VnfmUtil>() {
 
 622             public JSONObject getVnfmById(String vnfmId) {
 
 623                 JSONObject json = new JSONObject();
 
 624                 json.put("vnfm", "1234");
 
 628         String result = vnfRoa.getVnfmById("1234", null);
 
 629         assertNotNull(result);
 
 633     public void testGetJobFromVnfm() throws ServiceException {
 
 634         new MockUp<VnfMgr>() {
 
 637             public JSONObject getJobFromVnfm(String jobId, String vnfmId) {
 
 638                 JSONObject json = new JSONObject();
 
 639                 json.put("retCode", "1");
 
 644             public String transferToLcm(JSONObject restJson) {
 
 648         String result = vnfRoa.getJobFromVnfm("jobId", "vnfmId", null, "responseId");
 
 649         assertNotNull(result);
 
 653     public void testGetJobFromVnfmFail() throws ServiceException {
 
 655         new MockUp<VnfMgr>() {
 
 658             public JSONObject getJobFromVnfm(String jobId, String vnfmId) {
 
 659                 JSONObject json = new JSONObject();
 
 660                 json.put("retCode", "-1");
 
 665         MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
 
 666         HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
 
 667         String result = vnfRoa.getJobFromVnfm("jobId", "vnfmId", mockResInstance, "responseId");
 
 668         assertNotNull(result);