aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzhuguanyu <zhuguanyu5@huawei.com>2022-09-08 18:10:40 +0800
committerguanyu zhu <zhuguanyu5@huawei.com>2022-09-15 07:07:54 +0000
commit95d2de5a5dd75626c69ab2f530f7a88f36ba30ac (patch)
treeeb0b4c6704b198f62c86cad2ca5213cf75132806
parenta822724a4928b19aba349776ac17bdc5c72e8696 (diff)
Add UT for SO adapter
Issue-ID: USECASEUI-716 Signed-off-by: zhuguanyu <zhuguanyu5@huawei.com> Change-Id: I6ab6ae779355b3f1570ee1b71e4f89f23f4b0a2a
-rw-r--r--intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/SOService.java3
-rw-r--r--intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/impl/SOServiceImpl.java19
-rw-r--r--intentanalysis/src/test/java/org/onap/usecaseui/intentanalysis/adapters/so/SOServiceTest.java115
3 files changed, 132 insertions, 5 deletions
diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/SOService.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/SOService.java
index 4129b8e..7b56e17 100644
--- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/SOService.java
+++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/SOService.java
@@ -16,11 +16,12 @@
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);
}
diff --git a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/impl/SOServiceImpl.java b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/impl/SOServiceImpl.java
index e4e1f60..6f5cbcc 100644
--- a/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/impl/SOServiceImpl.java
+++ b/intentanalysis/src/main/java/org/onap/usecaseui/intentanalysis/adapters/so/impl/SOServiceImpl.java
@@ -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
index 0000000..033336f
--- /dev/null
+++ b/intentanalysis/src/test/java/org/onap/usecaseui/intentanalysis/adapters/so/SOServiceTest.java
@@ -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);
+ }
+}