package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.vnf;
 
-import static org.junit.Assert.*;
+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 org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.csm.vnf.VnfMgrVnfm;
 
 import mockit.Mock;
 import mockit.MockUp;
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            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();
                 return resultJson;
             }
         };
+
+
         String data = "{\"vnfmInfo\":{\"url\":\"url\"}}";
         JSONObject subJsonObject = JSONObject.fromObject(data);
         JSONObject vnfmObjcet = new JSONObject();
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            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;
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            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;
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson, String authModel) {
                 JSONObject resultJson = new JSONObject();
                 return resultJson;
             }
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            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;
         JSONObject retJson = new JSONObject();
         retJson.put("jobId", "vnfId" + "_" + Constant.DELETE);
         resultJson.put("data", retJson);
-        assertEquals(resultJson, result);
+        assertEquals(Constant.REST_SUCCESS, result.get("retCode"));
     }
 
     @Test
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            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;
     public void getJobTestNormal(){
         new MockUp<ResultRequestUtil>(){
             @Mock
-            public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson) {
+            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");
                 JSONArray basics = new JSONArray();
                 basics.add("test123");
                 JSONObject basicsData = new JSONObject();
-                basicsData.put("basic", basics);
+                basicsData.put("vnf_list", basics);
                 obj.put("data", basicsData);
                 return obj;
             }
     public void getJobTestCreatedNormal(){
         new MockUp<ResultRequestUtil>(){
             @Mock
-            public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson) {
+            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");
                 JSONArray basics = new JSONArray();
                 basics.add("test123");
                 JSONObject basicsData = new JSONObject();
-                basicsData.put("basic", basics);
+                basicsData.put("vnf_list", basics);
                 obj.put("data", basicsData);
                 return obj;
             }
     public void getJobTestNullData(){
         new MockUp<ResultRequestUtil>(){
             @Mock
-            public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson) {
+            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");
     public void getJobTestInternalError(){
         new MockUp<ResultRequestUtil>(){
             @Mock
-            public JSONObject call(JSONObject vnfmObject, String path, String methodName, String paramsJson) {
+            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");
 
 
     @Test
-    public void testScaleVnf() {
+    public void testScaleVnfOut() {
         new MockUp<ResultRequestUtil>() {
 
             @Mock
-            public JSONObject call(JSONObject vnfmObjcet, String path, String methodName, String paramsJson) {
+            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();
                 return resultJson;
             }
         };
-        String data = "{\"vnfmInfo\":{\"url\":\"url\"}}";
+        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<ResultRequestUtil>() {
+
+            @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<AdapterResourceManager>() {
+
+            @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();
 
 
 package org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.rest;
 
-import mockit.Mock;
-import mockit.MockUp;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.constant.Constant;
 import org.onap.vfc.nfvo.vnfm.svnfm.vnfmadapter.service.process.VnfMgr;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import mockit.Mock;
+import mockit.MockUp;
+import net.sf.json.JSONArray;
+import net.sf.json.JSONObject;
 
 public class VnfRoaTest {
 
         assertNotNull(result);
     }
 
+    @Test
+    public void testHealVnf() throws ServiceException {
+        final JSONObject restJson = new JSONObject();
+        restJson.put("retCode", Constant.REST_SUCCESS);
+        MockUp<HttpServletRequest> proxyStub = new MockUp<HttpServletRequest>() {};
+        HttpServletRequest mockInstance = proxyStub.getMockInstance();
+
+        MockUp<HttpServletResponse> proxyResStub = new MockUp<HttpServletResponse>() {};
+        HttpServletResponse mockResInstance = proxyResStub.getMockInstance();
+
+        new MockUp<VnfMgr>() {
+
+            @Mock
+            public JSONObject healVnf(JSONObject jsonObject, String vnfInstanceId, String vnfmId)  {
+                JSONObject retJson = new JSONObject();
+                retJson.put("id", "123");
+                restJson.put("data", retJson);
+                return restJson;
+            }
+        };
+        new MockUp<VnfmJsonUtil>() {
+
+            @SuppressWarnings("unchecked")
+            @Mock
+            public <T> T getJsonFromContexts(HttpServletRequest VNFreq) {
+                return (T)restJson;
+            }
+        };
+
+        String result = vnfRoa.healVnf(mockInstance, mockResInstance, "id", "id");
+        assertNotNull(result);
+
+    }
+
     @Test
     public void testScaleVnf() throws ServiceException {
         final JSONObject restJson = new JSONObject();