diff options
Diffstat (limited to 'components/slice-analysis-ms/src/test')
5 files changed, 442 insertions, 46 deletions
diff --git a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/AaiInterfaceServiceTest.java b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/AaiInterfaceServiceTest.java new file mode 100644 index 00000000..78607788 --- /dev/null +++ b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/AaiInterfaceServiceTest.java @@ -0,0 +1,114 @@ +/******************************************************************************* + * ============LICENSE_START======================================================= + * slice-analysis-ms + * ================================================================================ + * Copyright (C) 2021 Wipro Limited. + * ============================================================================== + * 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.slice.analysis.ms.configdb; + +import static org.junit.Assert.assertEquals; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PowerMockIgnore; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.modules.junit4.PowerMockRunnerDelegate; +import org.onap.slice.analysis.ms.models.Configuration; +import org.onap.slice.analysis.ms.models.configdb.CellsModel; +import org.onap.slice.analysis.ms.models.configdb.NetworkFunctionModel; +import org.onap.slice.analysis.ms.restclients.AaiRestClient; +import org.onap.slice.analysis.ms.restclients.ConfigDbRestClient; +import org.onap.slice.analysis.ms.utils.BeanUtil; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(PowerMockRunner.class) +@PowerMockRunnerDelegate(SpringRunner.class) +@PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*"}) +@PrepareForTest({ AaiService.class,Configuration.class }) +@SpringBootTest(classes = AaiInterfaceServiceTest.class) +public class AaiInterfaceServiceTest { + + Configuration configuration = Configuration.getInstance(); + + @InjectMocks + AaiService aaiService; + + @Mock + AaiRestClient restClient; + + @Test + public void fetchCurrentConfigurationOfSlice() { + configuration.setAaiUrl("http://aai:30233/aai/v21/business/customers/customer/"); + PowerMockito.mockStatic(AaiService.class); + PowerMockito.mockStatic(Configuration.class); + PowerMockito.when(Configuration.getInstance()).thenReturn(configuration); + Map<String, Integer> responsemap = new HashMap<>(); + responsemap.put("dLThptPerSlice", 60); + responsemap.put("uLThptPerSlice", 54); + try { + String serviceInstance = new String( + Files.readAllBytes(Paths.get("src/test/resources/aaiDetailsList.json"))); + Mockito.when(restClient.sendGetRequest(Mockito.anyString(), Mockito.any())) + .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK)); + + + } catch (Exception e) { + e.printStackTrace(); + + } + assertEquals(responsemap, aaiService.fetchCurrentConfigurationOfSlice("001-010000")); + } + + @Test + public void fetchServiceProfile() { + Map<String, String> responseMap = new HashMap<String, String>(); + responseMap.put("sNSSAI", "001-00110"); + responseMap.put("ranNFNSSIId", "4b889f2b-8ee4-4ec7-881f-5b1af8a74039"); + responseMap.put("sliceProfileId", "ab9af40f13f7219099333"); + responseMap.put("globalSubscriberId", "5GCustomer"); + responseMap.put("subscriptionServiceType", "5G"); + + try { + String serviceInstance = new String( + Files.readAllBytes(Paths.get("src/test/resources/aaiDetailsList.json"))); + Mockito.when(restClient.sendGetRequest(Mockito.anyString(), Mockito.any())) + .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK)); + + } catch (Exception e) { + e.printStackTrace(); + + } + + assertEquals(responseMap, aaiService.fetchServiceDetails("001-00110")); + } +} + diff --git a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/ConfigDbInterfaceServiceTest.java b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/ConfigDbInterfaceServiceTest.java index 481fee6f..3cb0a3b7 100644 --- a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/ConfigDbInterfaceServiceTest.java +++ b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/configdb/ConfigDbInterfaceServiceTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * slice-analysis-ms * ================================================================================ - * Copyright (C) 2020 Wipro Limited. + * Copyright (C) 2020-2021 Wipro Limited. * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -64,8 +64,9 @@ public class ConfigDbInterfaceServiceTest { map.put("dLThptPerSlice", 45); map.put("uLThptPerSlice", 50); responsemap.put("1", map); + Mockito.when(restclient.sendGetRequest(Mockito.anyString(), Mockito.any())).thenReturn(new ResponseEntity<Object>(responsemap, HttpStatus.OK)); - assertEquals(responsemap, configdbservice.fetchCurrentConfigurationOfSlice("snssai")); + assertEquals(responsemap, configdbservice.fetchCurrentConfigurationOfRIC("snssai")); } @Test @@ -125,3 +126,4 @@ public class ConfigDbInterfaceServiceTest { assertEquals(responseMap, configdbservice.fetchServiceDetails("snssai")); } } + diff --git a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/restclients/RestClientTest.java b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/restclients/RestClientTest.java index 95da3667..fe7407f8 100644 --- a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/restclients/RestClientTest.java +++ b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/restclients/RestClientTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * slice-analysis-ms * ================================================================================ - * Copyright (C) 2020 Wipro Limited. + * Copyright (C) 2020-2021 Wipro Limited. * ============================================================================== * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,6 @@ *******************************************************************************/ package org.onap.slice.analysis.ms.restclients; - import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.when; @@ -32,6 +31,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; +import org.mockito.Mockito; import org.onap.slice.analysis.ms.service.SnssaiSamplesProcessorTest; import org.onap.slice.analysis.ms.utils.BeanUtil; import org.powermock.core.classloader.annotations.PowerMockIgnore; @@ -49,61 +49,60 @@ import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; - - @RunWith(SpringRunner.class) @SpringBootTest(classes = RestClientTest.class) public class RestClientTest { - + @Mock RestTemplate restTemplate; @InjectMocks RestClient restclient; - - @SuppressWarnings({ "static-access"}) + + @SuppressWarnings({ "static-access" }) @Test public void sendGetRequestTest() { - ParameterizedTypeReference<Map<String,Integer>> responseType = null; - HttpHeaders headers = new HttpHeaders(); - headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); - headers.setContentType(MediaType.APPLICATION_JSON); + String requestUrl = ""; + ParameterizedTypeReference<String> responseType = null; + HttpHeaders headers = new HttpHeaders(); + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<Object> requestEntity = new HttpEntity<>( headers); - Map<String, Integer> responsemap=new HashMap<>(); - responsemap.put("dLThptPerSlice", 1); - responsemap.put("uLThptPerSlice", 2); - String requestUrl=""; - when(restTemplate.exchange(requestUrl, HttpMethod.GET,requestEntity,responseType)).thenReturn(ResponseEntity.ok(responsemap)); - ResponseEntity<Map<String,Integer>> resp = restclient.sendGetRequest(headers, requestUrl, responseType); - assertEquals(resp.getBody(),responsemap); + when(restTemplate.exchange(requestUrl, HttpMethod.GET, requestEntity, responseType)) + .thenReturn(new ResponseEntity(HttpStatus.NOT_FOUND)); + assertEquals(restclient.sendGetRequest(headers, requestUrl, responseType).getStatusCode(), HttpStatus.NOT_FOUND); } - + @SuppressWarnings({ "static-access", "unchecked", "rawtypes" }) @Test - public void sendPostRequestTest() { - ParameterizedTypeReference<String> responseType = null; - HttpHeaders headers = new HttpHeaders(); - headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); - headers.setContentType(MediaType.APPLICATION_JSON); - String requestUrl = "Url"; String requestBody = null; - HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers); - when(restTemplate.exchange(requestUrl, HttpMethod.POST,requestEntity,responseType)).thenReturn(new ResponseEntity(HttpStatus.OK)); - ResponseEntity<String> resp = restclient.sendPostRequest(headers, requestUrl, requestBody,responseType); - assertEquals(resp.getStatusCode(), HttpStatus.OK); + public void sendPostRequestTest() { + ParameterizedTypeReference<String> responseType = null; + HttpHeaders headers = new HttpHeaders(); + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + headers.setContentType(MediaType.APPLICATION_JSON); + String requestUrl = "Url"; + String requestBody = null; + HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers); + when(restTemplate.exchange(requestUrl, HttpMethod.POST, requestEntity, responseType)) + .thenReturn(new ResponseEntity(HttpStatus.OK)); + ResponseEntity<String> resp = restclient.sendPostRequest(headers, requestUrl, requestBody, responseType); + assertEquals(resp.getStatusCode(), HttpStatus.OK); } - + @Test - public void sendPostRequestTest2() { - ParameterizedTypeReference<String> responseType = null; - HttpHeaders headers = new HttpHeaders(); - headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); - headers.setContentType(MediaType.APPLICATION_JSON); - String requestUrl = "Url"; String requestBody = null; - HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers); - when(restTemplate.exchange(requestUrl, HttpMethod.POST,requestEntity,responseType)).thenReturn(new ResponseEntity(HttpStatus.NOT_FOUND)); - ResponseEntity<String> resp = restclient.sendPostRequest(headers, requestUrl, requestBody,responseType); - assertEquals(resp.getStatusCode(), HttpStatus.NOT_FOUND); - } - - + public void sendPostRequestTest2() { + ParameterizedTypeReference<String> responseType = null; + HttpHeaders headers = new HttpHeaders(); + headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); + headers.setContentType(MediaType.APPLICATION_JSON); + String requestUrl = "Url"; + String requestBody = null; + HttpEntity<Object> requestEntity = new HttpEntity<>(requestBody, headers); + when(restTemplate.exchange(requestUrl, HttpMethod.POST, requestEntity, responseType)) + .thenReturn(new ResponseEntity(HttpStatus.NOT_FOUND)); + ResponseEntity<String> resp = restclient.sendPostRequest(headers, requestUrl, requestBody, responseType); + assertEquals(resp.getStatusCode(), HttpStatus.NOT_FOUND); + } + } + diff --git a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/service/MLMessageProcessorTest.java b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/service/MLMessageProcessorTest.java index d80160c9..6e0d1243 100644 --- a/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/service/MLMessageProcessorTest.java +++ b/components/slice-analysis-ms/src/test/java/org/onap/slice/analysis/ms/service/MLMessageProcessorTest.java @@ -37,6 +37,8 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.onap.slice.analysis.ms.configdb.IConfigDbService; +import org.onap.slice.analysis.ms.configdb.AaiService; +import org.onap.slice.analysis.ms.configdb.CpsService; import org.onap.slice.analysis.ms.models.MLOutputModel; import org.onap.slice.analysis.ms.models.policy.AdditionalProperties; import org.springframework.boot.test.context.SpringBootTest; @@ -55,7 +57,13 @@ public class MLMessageProcessorTest { @Mock private IConfigDbService configDbService; - + + @Mock + AaiService aaiService; + + @Mock + CpsService cpsService; + @Mock private PolicyService policyService; diff --git a/components/slice-analysis-ms/src/test/resources/aaiDetailsList.json b/components/slice-analysis-ms/src/test/resources/aaiDetailsList.json new file mode 100644 index 00000000..e538e220 --- /dev/null +++ b/components/slice-analysis-ms/src/test/resources/aaiDetailsList.json @@ -0,0 +1,273 @@ +{ + "service-instance":[ + { + "service-instance-id":"c77802fe-cc49-4874-b12c-03fc2d88b060", + "service-instance-name":"sliceprofile_01e56f6e-0481-4654-919f-476734ec8176", + "service-role":"slice-profile-instance", + "environment-context":"001-100001", + "workload-context":"TN-MH", + "service-instance-location-id":"[\"460-00\",\"460-01\"]", + "resource-version":"1613640076516", + "orchestration-status":"deactivated", + "service-function":"non-shared", + "relationship-list":{ + "relationship":[ + { + "related-to":"service-instance", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/ab9af40f13f721b5f13539d87484098", + "relationship-data":[ + { + "relationship-key":"customer.global-customer-id", + "relationship-value":"5GCustomer" + }, + { + "relationship-key":"service-subscription.service-type", + "relationship-value":"5G" + }, + { + "relationship-key":"service-instance.service-instance-id", + "relationship-value":"ab9af40f13f721b5f13539d87484098" + } + ], + "related-to-property":[ + { + "property-key":"service-instance.service-instance-name", + "property-value":"an_sp_1" + } + ] + } + ] + } + }, + { + "service-instance-id":"ab9af40f13f7219099333", + "service-instance-name":"an_sp_1", + "service-type":"00-000", + "service-role":"slice-profile-instance", + "environment-context":"001-00110", + "workload-context":"ÁN-NF", + "service-instance-location-id":"[\"460-00\",\"460-01\"]", + "resource-version":"1613715676282", + "orchestration-status":"deactivated" + }, + { + "service-instance-id":"ab9af40f13f72176yh785", + "service-instance-name":"an_sp_1", + "service-type":"00-000", + "service-role":"slice-profile-instance", + "environment-context":"001-010000", + "workload-context":"AN-NF", + "service-instance-location-id":"[\"460-00\",\"460-01\"]", + "resource-version":"1613898735909", + "orchestration-status":"deactivated" + }, + { + "service-instance-id":"660ca85c-1a0f-4521-a559-65f23e794699", + "service-instance-name":"NSI", + "service-type":"00-001", + "service-role":"nsi", + "environment-context":"001-100001", + "workload-context":"nsi", + "resource-version":"1613666791709", + "orchestration-status":"deactivated", + "service-function":"non-shared", + "relationship-list":{ + "relationship":[ + { + "related-to":"service-instance", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/8e1bc208-e8d2-4010-8316-12469c600f1e", + "relationship-data":[ + { + "relationship-key":"customer.global-customer-id", + "relationship-value":"5GCustomer" + }, + { + "relationship-key":"service-subscription.service-type", + "relationship-value":"5G" + }, + { + "relationship-key":"service-instance.service-instance-id", + "relationship-value":"8e1bc208-e8d2-4010-8316-12469c600f1e" + } + ], + "related-to-property":[ + { + "property-key":"service-instance.service-instance-name", + "property-value":"TESTRANTOPNSST" + } + ] + } + ] + } + }, + { + "service-instance-id":"4b889f2b-8ee4-4ec7-881f-5b1af8a74039", + "service-instance-name":"TEST_RAN_NF_NSST", + "service-type":"00-000", + "service-role":"nssi", + "environment-context":"001-100001", + "workload-context":"AN-NF", + "model-invariant-id":"cc2ffa2f-722b-4ab1-a6cb-45258ebf0c7f", + "model-version-id":"ca22957d-3aa1-4c6e-ab70-666e678b8e02", + "service-instance-location-id":"[\"460-00\",\"460-01\"]", + "resource-version":"1613630576677", + "orchestration-status":"deactivated", + "service-function":"non-shared", + "relationship-list":{ + "relationship":[ + { + "related-to":"network-route", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/network/network-routes/network-route/835909aa-3163-41fe-b0aa-8964887132c9", + "relationship-data":[ + { + "relationship-key":"network-route.route-id", + "relationship-value":"835909aa-3163-41fe-b0aa-8964887132c9" + } + ] + }, + { + "related-to":"network-route", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/network/network-routes/network-route/7869350c-31c5-424b-8b0d-fb3d1f05857d", + "relationship-data":[ + { + "relationship-key":"network-route.route-id", + "relationship-value":"7869350c-31c5-424b-8b0d-fb3d1f05857d" + } + ] + }, + { + "related-to":"service-instance", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/8e1bc208-e8d2-4010-8316-12469c600f1e", + "relationship-data":[ + { + "relationship-key":"customer.global-customer-id", + "relationship-value":"5GCustomer" + }, + { + "relationship-key":"service-subscription.service-type", + "relationship-value":"5G" + }, + { + "relationship-key":"service-instance.service-instance-id", + "relationship-value":"8e1bc208-e8d2-4010-8316-12469c600f1e" + } + ], + "related-to-property":[ + { + "property-key":"service-instance.service-instance-name", + "property-value":"TESTRANTOPNSST" + } + ] + }, + { + "related-to":"network-route", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/network/network-routes/network-route/69d2251d-12fb-49c1-b68f-ffc6d1e4b903", + "relationship-data":[ + { + "relationship-key":"network-route.route-id", + "relationship-value":"69d2251d-12fb-49c1-b68f-ffc6d1e4b903" + } + ] + }, + { + "related-to":"network-route", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/network/network-routes/network-route/5568076c-0ecc-4ee7-b8cb-a2a94b3f57c5", + "relationship-data":[ + { + "relationship-key":"network-route.route-id", + "relationship-value":"5568076c-0ecc-4ee7-b8cb-a2a94b3f57c5" + } + ] + }, + { + "related-to":"service-instance", + "relationship-label":"org.onap.relationships.inventory.ComposedOf", + "related-link":"/aai/v21/business/customers/customer/5GCustomer/service-subscriptions/service-subscription/5G/service-instances/service-instance/ee81b1a6-6562-40e2-8235-122a92d651a7", + "relationship-data":[ + { + "relationship-key":"customer.global-customer-id", + "relationship-value":"5GCustomer" + }, + { + "relationship-key":"service-subscription.service-type", + "relationship-value":"5G" + }, + { + "relationship-key":"service-instance.service-instance-id", + "relationship-value":"ee81b1a6-6562-40e2-8235-122a92d651a7" + } + ], + "related-to-property":[ + { + "property-key":"service-instance.service-instance-name", + "property-value":"sliceprofile_002fcda5-ebff-4efc-b385-58d0b3f25f6f" + } + ] + } + ] + } + } + ], + "slice-profile":[ + { + "profile-id":"684hf846f-863b-4901-b202-0ahskn896", + "latency":30, + "max-number-of-UEs":200, + "coverage-area-TA-list":"[1, 2, 3, 4]", + "resource-sharing-level":"non-shared", + "exp-data-rate-UL":60, + "exp-data-rate-DL":54, + "resource-version":"1613898735909" + } + ], + "customer":[ + { + "global-customer-id":"5GCustomer", + "subscriber-name":"5GCustomer", + "subscriber-type":"INFRA", + "resource-version":"1610546339091" + } + ], + "service-subscription":[ + { + "service-type":"5G", + "resource-version":"1612775493653", + "relationship-list":{ + "relationship":[ + { + "related-to":"tenant", + "relationship-label":"org.onap.relationships.inventory.Uses", + "related-link":"/aai/v21/cloud-infrastructure/cloud-regions/cloud-region/k8scloudowner4/k8sregionfour/tenants/tenant/aaaa", + "relationship-data":[ + { + "relationship-key":"cloud-region.cloud-owner", + "relationship-value":"k8scloudowner4" + }, + { + "relationship-key":"cloud-region.cloud-region-id", + "relationship-value":"k8sregionfour" + }, + { + "relationship-key":"tenant.tenant-id", + "relationship-value":"aaaa" + } + ], + "related-to-property":[ + { + "property-key":"tenant.tenant-name", + "property-value":"k8stenant" + } + ] + } + ] + } + } + ] +} |