diff options
author | Seshu Kumar M <seshu.kumar.m@huawei.com> | 2021-09-22 13:29:58 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2021-09-22 13:29:58 +0000 |
commit | 18a52fdb476285d33757879aa69e7a4f247f5e14 (patch) | |
tree | 7d00d318e41acd25060a64d25b174fe478c92f88 /so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java | |
parent | 9272535549ab041d783c2ee21283f8d5b3f39c4c (diff) | |
parent | f6755e34a8968756b59ca65bec50116530d40a48 (diff) |
Merge "Add Junit coverage"
Diffstat (limited to 'so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java')
2 files changed, 349 insertions, 0 deletions
diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/Constants.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/Constants.java index aef8234..c237117 100644 --- a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/Constants.java +++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/Constants.java @@ -39,6 +39,8 @@ public class Constants { public static final String SOURCE_TEST_FOLDER = "src/test/resources/camundaResponses/"; + public static final String SOURCE_CATALOG_FOLDER = "src/test/resources/catalogResponses/"; + public static final Path PROCESS_DEF_RESPONSE_JSON_FILE = Paths.get(SOURCE_TEST_FOLDER + "processDefinition.json"); public static final Path ACTIVITY_INSTANCE_RESPONSE_JSON_FILE = @@ -56,6 +58,42 @@ public class Constants { public static final Path SEARCH_RESULT_RESPONSE_JSON_FILE = Paths.get("src/test/resources/databaseResponses/searchResult.json"); + public static final Path SERVICE_RECIPE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_CATALOG_FOLDER + "serviceRecipeResponse.json"); + + public static final Path SERVICE_RECIPE_REQUEST_JSON_FILE = + Paths.get(SOURCE_CATALOG_FOLDER + "serviceRecipeRequest.json"); + + public static final Path NETWORK_RECIPE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_CATALOG_FOLDER + "networkRecipeResponse.json"); + + public static final Path SERVICE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_CATALOG_FOLDER + "serviceResponse.json"); + + public static final Path SERVICE_MODELVERSIONID_NOT_EXIST = + Paths.get(SOURCE_CATALOG_FOLDER + "service_Model_Version_Not_Exist.json"); + + public static final Path SERVICE_SERVICE_ACTION_CONFLICT = + Paths.get(SOURCE_CATALOG_FOLDER + "service_ServiceActionConflict.json"); + + public static final Path SERVICE_TYPE_NETWORK_REQUEST = + Paths.get(SOURCE_CATALOG_FOLDER + "serviceRecipeRequest_TypeNetwork.json"); + + public static final Path SERVICE_TYPE_NETWORK_RESPONSE = + Paths.get(SOURCE_CATALOG_FOLDER + "service_Type_Network_Response.json"); + + public static final Path SERVICE_TYPE_VNF_REQUEST = + Paths.get(SOURCE_CATALOG_FOLDER + "serviceRecipeRequest_TypeVnf.json"); + + public static final Path VNF_RECIPE_RESPONSE_JSON_FILE = + Paths.get(SOURCE_CATALOG_FOLDER + "vnfRecipeResponse.json"); + + public static final Path SERVICE_TYPE_VNF_RESPONSE = + Paths.get(SOURCE_CATALOG_FOLDER + "service_Type_Vnf_Response.json"); + + public static final Path EMPTY_RESPONSE_JSON_FILE = + Paths.get(SOURCE_CATALOG_FOLDER + "EmptyResponse.json"); + public static final String ID = UUID.randomUUID().toString(); public static final long END_TIME_IN_MS = 1546351200000l; diff --git a/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/SoMonitoringTest.java b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/SoMonitoringTest.java new file mode 100644 index 0000000..d6facae --- /dev/null +++ b/so-admin-cockpit-monitoring-workflow/so-admin-cockpit-monitoring-workflow-service/src/test/java/org/onap/so/monitoring/rest/api/SoMonitoringTest.java @@ -0,0 +1,311 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright 2021 Huawei Technologies Co., Ltd. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + */ +package org.onap.so.monitoring.rest.api; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.json.JSONArray; +import org.json.JSONObject; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; +import org.onap.so.db.catalog.beans.*; +import org.onap.so.db.catalog.beans.ServiceRecipe; +import org.onap.so.db.catalog.client.CatalogDbClient; +import org.onap.so.rest.catalog.beans.Service; +import org.onap.so.monitoring.db.service.DatabaseServiceProvider; +import org.onap.so.monitoring.rest.service.CamundaProcessDataServiceProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.ws.rs.core.Response; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; + +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_RECIPE_REQUEST_JSON_FILE; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_RECIPE_RESPONSE_JSON_FILE; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_RESPONSE_JSON_FILE; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_MODELVERSIONID_NOT_EXIST; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_SERVICE_ACTION_CONFLICT; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_TYPE_NETWORK_REQUEST; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_TYPE_NETWORK_RESPONSE; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_TYPE_VNF_REQUEST; +import static org.onap.so.monitoring.rest.api.Constants.SERVICE_TYPE_VNF_RESPONSE; +import static org.onap.so.monitoring.rest.api.Constants.NETWORK_RECIPE_RESPONSE_JSON_FILE; +import static org.onap.so.monitoring.rest.api.Constants.VNF_RECIPE_RESPONSE_JSON_FILE; +import static org.onap.so.monitoring.rest.api.Constants.EMPTY_RESPONSE_JSON_FILE; +import static org.onap.so.monitoring.rest.api.Constants.EMPTY_STRING; +import static org.onap.so.monitoring.rest.api.Constants.EMPTY_ARRAY_RESPONSE; + +/** + * @author md.irshad.sheikh@huawei.com + */ +@RunWith(MockitoJUnitRunner.class) +public class SoMonitoringTest { + + private static final Logger LOGGER = LoggerFactory.getLogger(SoMonitoringTest.class); + + @Autowired + private DatabaseServiceProvider databaseServiceProvider; + + @Autowired + private CamundaProcessDataServiceProvider camundaProcessDataServiceProvider; + + @Mock + private CatalogDbClient catalogDbClient; + + @InjectMocks + private SoMonitoringController injectSoMoni = + new SoMonitoringController(databaseServiceProvider, camundaProcessDataServiceProvider); + + private final ObjectMapper mapper = new ObjectMapper(); + + @Test + public void test_getServiceRecipes() throws IOException { + + ServiceRecipe serviceRecipe = mapper.readValue(new String(Files.readAllBytes(SERVICE_RECIPE_RESPONSE_JSON_FILE)), + ServiceRecipe.class); + List<ServiceRecipe> serviceRecipes = new ArrayList<ServiceRecipe>(); + serviceRecipes.add(serviceRecipe); + + doReturn(serviceRecipes).when(catalogDbClient).getServiceRecipes(); + + final Response response = injectSoMoni.getServiceRecipes(); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + + JSONObject obj = new JSONObject(response.getEntity().toString()); + JSONArray actualServiceRecipe = obj.getJSONArray("serviceRecipes"); + assertEquals("48cc36cc-a9fe-11e7-8b4b-0242ac120002", actualServiceRecipe.getJSONObject(0).getString("serviceModelUUID")); + } + + @Test + public void test_getServiceRecipesWithEmpty() throws IOException { + + doReturn(null).when(catalogDbClient).getServiceRecipes(); + + final Response response = injectSoMoni.getServiceRecipes(); + JSONObject obj = new JSONObject(response.getEntity().toString()); + assertEquals("Unable to process.", obj.getString("errMsg")); + } + + @Test + public void test_getNetworkRecipes() throws IOException { + + ObjectMapper mapper = new ObjectMapper(); + NetworkRecipe networkRecipe = mapper.readValue(new String(Files.readAllBytes(NETWORK_RECIPE_RESPONSE_JSON_FILE)), + NetworkRecipe.class); + List<NetworkRecipe> networkRecipes = new ArrayList<NetworkRecipe>(); + networkRecipes.add(networkRecipe); + doReturn(networkRecipes).when(catalogDbClient).getNetworkRecipes(); + + final Response response = injectSoMoni.getNetworkRecipes(); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + + JSONObject obj = new JSONObject(response.getEntity().toString()); + JSONArray actualServiceRecipe = obj.getJSONArray("networkRecipes"); + assertEquals("deleteInstance", actualServiceRecipe.getJSONObject(0).getString("action")); + } + + @Test + public void test_getNetworkRecipesWithEmpty() throws IOException { + + doReturn(null).when(catalogDbClient).getNetworkRecipes(); + + final Response response = injectSoMoni.getNetworkRecipes(); + JSONObject obj = new JSONObject(response.getEntity().toString()); + assertEquals("Unable to process.", obj.getString("errMsg")); + } + + @Test + public void test_getVnfRecipes() throws IOException { + + ObjectMapper mapper = new ObjectMapper(); + VnfRecipe vnfRecipe = mapper.readValue(new String(Files.readAllBytes(VNF_RECIPE_RESPONSE_JSON_FILE)), + VnfRecipe.class); + List<VnfRecipe> vnfRecipes = new ArrayList<VnfRecipe>(); + vnfRecipes.add(vnfRecipe); + doReturn(vnfRecipes).when(catalogDbClient).getVnfRecipes(); + + final Response response = injectSoMoni.getVnfRecipes(); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + JSONObject obj = new JSONObject(response.getEntity().toString()); + JSONArray actualServiceRecipe = obj.getJSONArray("vnfRecipes"); + assertEquals("deleteInstance", actualServiceRecipe.getJSONObject(0).getString("action")); + } + + @Test + public void test_getVnfRecipesWithEmpty() throws IOException { + + doReturn(null).when(catalogDbClient).getVnfRecipes(); + + final Response response = injectSoMoni.getVnfRecipes(); + JSONObject obj = new JSONObject(response.getEntity().toString()); + assertEquals("Unable to process.", obj.getString("errMsg")); + } + + @Test + public void test_setServiceRecipes_ServiceActionConflict() throws IOException { + + final String jsonRequestString = new String(Files.readAllBytes(SERVICE_RECIPE_REQUEST_JSON_FILE)); + + ObjectMapper mapper = new ObjectMapper(); + + ServiceRecipe serviceRecipe = mapper.readValue(new String(Files.readAllBytes(SERVICE_SERVICE_ACTION_CONFLICT)), + ServiceRecipe.class); + Service service = mapper.readValue(new String(Files.readAllBytes(SERVICE_RESPONSE_JSON_FILE)), Service.class); + + List<ServiceRecipe> serviceRecipes = new ArrayList<ServiceRecipe>(); + List<Service> services = new ArrayList<Service>(); + + serviceRecipes.add(serviceRecipe); + services.add(service); + doReturn(services).when(catalogDbClient).getServices(); + doReturn(serviceRecipes).when(catalogDbClient).getServiceRecipes(); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + + JSONObject obj = new JSONObject(response.getEntity().toString()); + assertEquals("The recipe for this action of the service template already exists.", + obj.getString("errMsg")); + } + + @Test + public void test_setServiceRecipes_EmptyJson() throws IOException { + + final String jsonRequestString = new String(Files.readAllBytes(EMPTY_RESPONSE_JSON_FILE)); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + } + + @Test + public void test_setServiceRecipes_EmptyString() throws IOException { + + final String jsonRequestString = new String(EMPTY_STRING); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + } + + @Test + public void test_setServiceRecipes_ServiceModelVersionIdNotExists() throws IOException { + + final String jsonRequestString = new String(Files.readAllBytes(SERVICE_RECIPE_REQUEST_JSON_FILE)); + + ObjectMapper mapper = new ObjectMapper(); + + Service service = mapper.readValue(new String(Files.readAllBytes(SERVICE_MODELVERSIONID_NOT_EXIST)), Service.class); + + List<Service> services = new ArrayList<Service>(); + + services.add(service); + doReturn(services).when(catalogDbClient).getServices(); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.OK.getStatusCode(), response.getStatus()); + JSONObject serviceRecipeObj = new JSONObject(response.getEntity().toString()); + assertEquals("The service template does not exist.", + serviceRecipeObj.getString("errMsg")); + } + + @Test + public void test_setServiceRecipes_Success() throws IOException { + + final String jsonRequestString = new String(Files.readAllBytes(SERVICE_RECIPE_REQUEST_JSON_FILE)); + + ObjectMapper mapper = new ObjectMapper(); + + ServiceRecipe serviceRecipe = mapper.readValue(new String(Files.readAllBytes(SERVICE_RECIPE_RESPONSE_JSON_FILE)), + ServiceRecipe.class); + Service service = mapper.readValue(new String(Files.readAllBytes(SERVICE_RESPONSE_JSON_FILE)), Service.class); + + List<ServiceRecipe> serviceRecipes = new ArrayList<ServiceRecipe>(); + List<Service> services = new ArrayList<Service>(); + + serviceRecipes.add(serviceRecipe); + services.add(service); + doReturn(services).when(catalogDbClient).getServices(); + doReturn(serviceRecipes).when(catalogDbClient).getServiceRecipes(); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus()); + JSONObject serviceRecipeObj = new JSONObject(response.getEntity().toString()); + assertEquals("48cc36cc-a9fe-11e7-8b4b-0242ac120002", serviceRecipeObj.getString("modelVersionId")); + } + + @Test + public void test_setServiceRecipes_TypeNetwork_Success() throws IOException { + final String jsonRequestString = new String(Files.readAllBytes(SERVICE_TYPE_NETWORK_REQUEST)); + + ObjectMapper mapper = new ObjectMapper(); + + NetworkRecipe networkRecipe = mapper.readValue(new String(Files.readAllBytes(NETWORK_RECIPE_RESPONSE_JSON_FILE)), + NetworkRecipe.class); + List<NetworkRecipe> networkRecipes = new ArrayList<NetworkRecipe>(); + networkRecipes.add(networkRecipe); + doReturn(networkRecipes).when(catalogDbClient).getNetworkRecipes(); + + NetworkResource networkResource = mapper.readValue(new String(Files.readAllBytes(SERVICE_TYPE_NETWORK_RESPONSE)), + NetworkResource.class); + List<NetworkResource> networkResources = new ArrayList<NetworkResource>(); + + networkResources.add(networkResource); + doReturn(networkResources).when(catalogDbClient).getNetworkResources(); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus()); + + JSONObject serviceRecipeObj = new JSONObject(response.getEntity().toString()); + assertEquals("48cc36cc-a9fe-11e7-8b4b-0242ac120002", serviceRecipeObj.getString("modelVersionId")); + } + + @Test + public void test_setServiceRecipes_TypeVnf_Success() throws IOException { + final String jsonRequestString = new String(Files.readAllBytes(SERVICE_TYPE_VNF_REQUEST)); + + ObjectMapper mapper = new ObjectMapper(); + + VnfRecipe vnfRecipe = mapper.readValue(new String(Files.readAllBytes(VNF_RECIPE_RESPONSE_JSON_FILE)), + VnfRecipe.class); + List<VnfRecipe> vnfRecipes = new ArrayList<VnfRecipe>(); + vnfRecipes.add(vnfRecipe); + doReturn(vnfRecipes).when(catalogDbClient).getVnfRecipes(); + + VnfResource vnfResource = mapper.readValue(new String(Files.readAllBytes(SERVICE_TYPE_VNF_RESPONSE)), + VnfResource.class); + List<VnfResource> vnfResources = new ArrayList<VnfResource>(); + + vnfResources.add(vnfResource); + doReturn(vnfResources).when(catalogDbClient).getVnfResources(); + + final Response response = injectSoMoni.setServiceRecipes(jsonRequestString); + assertEquals(Response.Status.CREATED.getStatusCode(), response.getStatus()); + + JSONObject serviceRecipeObj = new JSONObject(response.getEntity().toString()); + assertEquals("48cc36cc-a9fe-11e7-8b4b-0242ac120002", serviceRecipeObj.getString("modelVersionId")); + } + +}
\ No newline at end of file |