Add UT for SO adapter 04/130804/6
authorzhuguanyu <zhuguanyu5@huawei.com>
Thu, 8 Sep 2022 10:10:40 +0000 (18:10 +0800)
committerguanyu zhu <zhuguanyu5@huawei.com>
Thu, 15 Sep 2022 07:07:54 +0000 (07:07 +0000)
Issue-ID: USECASEUI-716
Signed-off-by: zhuguanyu <zhuguanyu5@huawei.com>
Change-Id: I6ab6ae779355b3f1570ee1b71e4f89f23f4b0a2a

intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/SOService.java
intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/impl/SOServiceImpl.java
intentanalysis/src/test/java/org/onap/usecaseui/intentanalysis/adapters/so/SOServiceTest.java [new file with mode: 0644]

index 4129b8e..7b56e17 100644 (file)
 package org.onap.usecaseui.intentanalysis.adapters.so;
 
 import org.onap.usecaseui.intentanalysis.bean.models.CCVPNInstance;
+import org.springframework.stereotype.Service;
 
 public interface SOService {
 
     int createCCVPNInstance(CCVPNInstance instance);
 
-    void deleteIntentInstance(String instanceId);
+    int deleteIntentInstance(String instanceId);
 
 }
index e4e1f60..6f5cbcc 100644 (file)
@@ -21,7 +21,6 @@ import com.alibaba.fastjson.JSONObject;
 import org.onap.usecaseui.intentanalysis.adapters.aai.apicall.AAIAPICall;
 import org.onap.usecaseui.intentanalysis.adapters.aai.apicall.AAIAuthConfig;
 import org.onap.usecaseui.intentanalysis.adapters.policy.apicall.PolicyAPICall;
-import org.onap.usecaseui.intentanalysis.adapters.policy.apicall.PolicyAuthConfig;
 import org.onap.usecaseui.intentanalysis.adapters.so.SOService;
 import org.onap.usecaseui.intentanalysis.adapters.so.apicall.SOAPICall;
 import org.onap.usecaseui.intentanalysis.adapters.so.apicall.SOAuthConfig;
@@ -30,18 +29,19 @@ import org.onap.usecaseui.intentanalysis.util.RestfulServices;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
 import retrofit2.Response;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+@Service
 
 public class SOServiceImpl implements SOService {
 
     private static final Logger logger = LoggerFactory.getLogger(SOServiceImpl.class);
 
-
     private SOAPICall soapiCall;
 
     private AAIAPICall aaiapiCall;
@@ -68,8 +68,16 @@ public class SOServiceImpl implements SOService {
         return this.aaiapiCall;
     }
 
+    public void setSoApiCall(SOAPICall soApiCall) {
+        this.soapiCall = soApiCall;
+    }
+
+    public void setAAIApiCall(AAIAPICall aaiApiCall) {
+        this.aaiapiCall = aaiApiCall;
+    }
+
     @Override
-    public int createCCVPNInstance(CCVPNInstance ccvpnInstance) {
+    public int  createCCVPNInstance(CCVPNInstance ccvpnInstance) {
         try{
             if (null == ccvpnInstance){
                 logger.error("CCVPN instance is null!");
@@ -100,17 +108,20 @@ public class SOServiceImpl implements SOService {
     }
 
     @Override
-    public void deleteIntentInstance(String serviceInstanceId) {
+    public int deleteIntentInstance(String serviceInstanceId) {
         try {
             deleteInstanceToSO(serviceInstanceId);
         }catch (Exception e) {
             logger.error("delete instance to SO error :" + e);
+            return 0;
         }
+        return 1;
     }
 
     public String createIntentInstanceToSO(CCVPNInstance ccvpnInstance) throws IOException {
         Map<String, Object> params = paramsSetUp(ccvpnInstance);
         params.put("additionalProperties",additionalPropertiesSetUp(ccvpnInstance));
+        //make sure params are in conformity with format
         okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(okhttp3.MediaType.parse("application/json"), JSON.toJSONString(params));
         Response<JSONObject> response = getSoApiCall().createIntentInstance(requestBody).execute();
         if (response.isSuccessful()) {
diff --git a/intentanalysis/src/test/java/org/onap/usecaseui/intentanalysis/adapters/so/SOServiceTest.java b/intentanalysis/src/test/java/org/onap/usecaseui/intentanalysis/adapters/so/SOServiceTest.java
new file mode 100644 (file)
index 0000000..033336f
--- /dev/null
@@ -0,0 +1,115 @@
+package org.onap.usecaseui.intentanalysis.adapters.so;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.*;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import java.io.IOException;
+import okhttp3.MediaType;
+import okhttp3.RequestBody;
+import okhttp3.ResponseBody;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import mockit.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.usecaseui.intentanalysis.IntentAnalysisApplicationTests;
+import org.onap.usecaseui.intentanalysis.adapters.aai.apicall.AAIAPICall;
+import org.onap.usecaseui.intentanalysis.adapters.policy.apicall.PolicyAPICall;
+import org.onap.usecaseui.intentanalysis.adapters.so.apicall.SOAPICall;
+import org.onap.usecaseui.intentanalysis.adapters.so.impl.SOServiceImpl;
+import org.onap.usecaseui.intentanalysis.bean.models.CCVPNInstance;
+import org.onap.usecaseui.intentanalysis.util.TestCall;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import retrofit2.Response;
+import org.mockito.MockitoAnnotations;
+
+@SpringBootTest(classes = IntentAnalysisApplicationTests.class)
+@RunWith(SpringRunner.class)
+public class SOServiceTest {
+
+    private CCVPNInstance ccvpnInstance;
+
+    @Autowired
+    private SOServiceImpl soService;
+
+    private SOAPICall soapiCall;
+
+    private AAIAPICall aaiapiCall;
+
+    @Before
+    public void init(){
+        soService = new SOServiceImpl();
+        ccvpnInstance = new CCVPNInstance();
+        soapiCall = mock(SOAPICall.class);
+        soService.setSoApiCall(soapiCall);
+        aaiapiCall = mock(AAIAPICall.class);
+        soService.setAAIApiCall(aaiapiCall);
+    }
+
+    @Test
+    public void testCreateCCVPNInstanceFailedCCVPNInstanceIsNull() throws IOException {
+        ccvpnInstance = null;
+        int result = soService.createCCVPNInstance(ccvpnInstance);
+        Assert.assertEquals(0, result);
+    }
+
+    @Test
+    public void testCreateCCVPNInstanceFailedException() throws IOException {
+        int result = soService.createCCVPNInstance(ccvpnInstance);
+        Assert.assertEquals(0, result);
+    }
+
+    @Test
+    public void testCreateCCVPNInstanceFailedJobIdNull() throws IOException {
+        JSONObject mockedSuccessJSONObject = mock(JSONObject.class);
+        when(soapiCall.createIntentInstance(any())).thenReturn(TestCall.successfulCall(mockedSuccessJSONObject));
+
+        int result = soService.createCCVPNInstance(ccvpnInstance);
+        Assert.assertEquals(0, result);
+    }
+
+    @Test
+    public void testDeleteIntentInstanceFailed() throws IOException {
+        int result = soService.deleteIntentInstance(anyString());
+        Assert.assertEquals(0, result);
+    }
+
+    @Test
+    public void testDeleteIntentInstanceSuccess() throws IOException {
+        JSONObject mockedSuccessJSONObject = mock(JSONObject.class);
+        when(soapiCall.deleteIntentInstance(any())).thenReturn(TestCall.successfulCall(mockedSuccessJSONObject));
+
+        int result = soService.deleteIntentInstance("testId");
+        Assert.assertEquals(1, result);
+    }
+
+    @Test
+    public void testCreateCCVPNInstanceGetCreateStatusFailed() throws IOException {
+        JSONObject mockedSuccessJSONObject = mock(JSONObject.class);
+        when(soapiCall.createIntentInstance(any())).thenReturn(TestCall.successfulCall(mockedSuccessJSONObject));
+        when(soapiCall.createIntentInstance(any()).execute().body().getString(anyString())).thenReturn("testJobId");
+        when(aaiapiCall.getInstanceInfo(anyString())).thenReturn(TestCall.successfulCall(mockedSuccessJSONObject));
+
+        int result = soService.createCCVPNInstance(ccvpnInstance);
+        Assert.assertEquals(0, result);
+    }
+
+    @Test
+    public void testCreateCCVPNInstanceSuccess() throws IOException {
+        JSONObject mockedSuccessJSONObject = mock(JSONObject.class);
+        when(soapiCall.createIntentInstance(any())).thenReturn(TestCall.successfulCall(mockedSuccessJSONObject));
+        when(soapiCall.createIntentInstance(any()).execute().body().getString(anyString())).thenReturn("testJobId");
+        when(aaiapiCall.getInstanceInfo(anyString())).thenReturn(TestCall.successfulCall(mockedSuccessJSONObject));
+        when(aaiapiCall.getInstanceInfo(anyString()).execute().body().getString(anyString())).thenReturn("created");
+
+        int result = soService.createCCVPNInstance(ccvpnInstance);
+        Assert.assertEquals(1, result);
+    }
+}