From 95d2de5a5dd75626c69ab2f530f7a88f36ba30ac Mon Sep 17 00:00:00 2001 From: zhuguanyu Date: Thu, 8 Sep 2022 18:10:40 +0800 Subject: Add UT for SO adapter Issue-ID: USECASEUI-716 Signed-off-by: zhuguanyu Change-Id: I6ab6ae779355b3f1570ee1b71e4f89f23f4b0a2a --- .../intentanalysis/adapters/so/SOService.java | 3 +- .../adapters/so/impl/SOServiceImpl.java | 19 +++- .../intentanalysis/adapters/so/SOServiceTest.java | 115 +++++++++++++++++++++ 3 files changed, 132 insertions(+), 5 deletions(-) create mode 100644 intentanalysis/src/test/java/org/onap/usecaseui/intentanalysis/adapters/so/SOServiceTest.java (limited to 'intentanalysis/src') 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 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 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); + } +} -- cgit 1.2.3-korg