1 /*******************************************************************************
2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2021-2022 Wipro Limited.
6 * ==============================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
20 *******************************************************************************/
22 package org.onap.slice.analysis.ms.aai;
24 import static org.junit.Assert.assertEquals;
26 import java.nio.file.Files;
27 import java.nio.file.Paths;
28 import java.util.ArrayList;
29 import java.util.HashMap;
30 import java.util.List;
33 import org.junit.Test;
34 import org.junit.runner.RunWith;
35 import org.mockito.InjectMocks;
36 import org.mockito.Mock;
37 import org.mockito.Mockito;
38 import org.onap.slice.analysis.ms.models.Configuration;
39 import org.onap.slice.analysis.ms.restclients.AaiRestClient;
40 import org.powermock.api.mockito.PowerMockito;
41 import org.powermock.core.classloader.annotations.PowerMockIgnore;
42 import org.powermock.core.classloader.annotations.PrepareForTest;
43 import org.powermock.modules.junit4.PowerMockRunner;
44 import org.powermock.modules.junit4.PowerMockRunnerDelegate;
45 import org.springframework.boot.test.context.SpringBootTest;
46 import org.springframework.http.HttpStatus;
47 import org.springframework.http.ResponseEntity;
48 import org.springframework.test.context.junit4.SpringRunner;
50 @RunWith(PowerMockRunner.class)
51 @PowerMockRunnerDelegate(SpringRunner.class)
52 @PowerMockIgnore({"com.sun.org.apache.xerces.*", "javax.xml.*", "org.xml.*", "javax.management.*"})
53 @PrepareForTest({AaiService.class, Configuration.class})
54 @SpringBootTest(classes = AaiInterfaceServiceTest.class)
55 public class AaiInterfaceServiceTest {
57 Configuration configuration = Configuration.getInstance();
60 AaiService aaiService;
63 AaiRestClient restClient;
66 public void fetchCurrentConfigurationOfSlice() {
67 configuration.setAaiUrl("http://aai:30233/aai/v21/business/customers/customer/");
68 PowerMockito.mockStatic(AaiService.class);
69 PowerMockito.mockStatic(Configuration.class);
70 PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
71 Map<String, Integer> responsemap = new HashMap<>();
72 responsemap.put("dLThptPerSlice", 60);
73 responsemap.put("uLThptPerSlice", 54);
75 String serviceInstance =
76 new String(Files.readAllBytes(Paths.get("src/test/resources/aaiDetailsList.json")));
77 Mockito.when(restClient.sendGetRequest(Mockito.anyString(), Mockito.any()))
78 .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK));
80 } catch (Exception e) {
84 assertEquals(responsemap, aaiService.fetchCurrentConfigurationOfSlice("001-010000"));
88 public void fetchServiceProfile() {
89 Map<String, String> responseMap = new HashMap<String, String>();
90 responseMap.put("sNSSAI", "001-00110");
91 responseMap.put("ranNFNSSIId", "4b889f2b-8ee4-4ec7-881f-5b1af8a74039");
92 responseMap.put("sliceProfileId", "ab9af40f13f7219099333");
93 responseMap.put("globalSubscriberId", "5GCustomer");
94 responseMap.put("subscriptionServiceType", "5G");
97 String serviceInstance =
98 new String(Files.readAllBytes(Paths.get("src/test/resources/aaiDetailsList.json")));
99 Mockito.when(restClient.sendGetRequest(Mockito.anyString(), Mockito.any()))
100 .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK));
102 } catch (Exception e) {
107 assertEquals(responseMap, aaiService.fetchServiceDetails("001-00110"));
111 public void fetchSubscriberAndSubscriptionServiceTypeTest() throws Exception {
113 configuration.setAaiUrl("http://aai:30233/aai/v21");
114 Map<String, String> expectedResponse = new HashMap<String, String>();
115 expectedResponse.put("globalSubscriberId", "5GCustomer");
116 expectedResponse.put("subscriptionServiceType", "5G");
117 PowerMockito.mockStatic(AaiService.class);
118 PowerMockito.mockStatic(Configuration.class);
119 PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
123 String serviceInstance =
124 new String(Files.readAllBytes(Paths.get("src/test/resources/aaiDetailsList.json")));
125 Mockito.when(restClient.sendGetRequest(Mockito.anyString(), Mockito.any()))
126 .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK));
128 } catch (Exception e) {
132 Map<String, String> actualResponse = aaiService.fetchSubscriberAndSubscriptionServiceType();
133 assertEquals(expectedResponse, actualResponse);
137 public void fetchSliceProfilesOfAllotedResourceDataTest() throws Exception {
138 configuration.setAaiUrl("http://aai:30233/aai/v21");
139 List<String> allotedResourceList = new ArrayList<>();
140 allotedResourceList.add("530d188d-9087-49af-a44a-90c40e0c2d47");
141 List<String> expectedResponse = new ArrayList<>();
142 expectedResponse.add("b2ae730f-1d5f-495a-8112-dac017a7348c");
143 expectedResponse.add("cad8fa36-2d55-4c12-a92e-1bd551517a0c");
144 expectedResponse.add("8d0d698e-77f4-4453-8c09-ae2cbe6a9a04");
145 PowerMockito.mockStatic(AaiService.class);
146 PowerMockito.mockStatic(Configuration.class);
147 PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
151 String serviceInstance =
152 new String(Files.readAllBytes(Paths.get("src/test/resources/alloted-resource.json")));
153 Mockito.when(restClient.sendGetRequest(Mockito.anyString(), Mockito.any()))
154 .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK));
156 } catch (Exception e) {
160 List<String> actualResponse = aaiService.fetchSliceProfilesOfAllotedResourceData(allotedResourceList);
161 assertEquals(expectedResponse, actualResponse);
165 public void fetchSnssaiOfSliceProfileTest() throws Exception {
166 configuration.setAaiUrl("http://aai:30233/aai/v21");
167 List<String> sliceProfileList = new ArrayList<>();
168 sliceProfileList.add("b2ae730f-1d5f-495a-8112-dac017a7348c");
169 sliceProfileList.add("cad8fa36-2d55-4c12-a92e-1bd551517a0c");
170 sliceProfileList.add("8d0d698e-77f4-4453-8c09-ae2cbe6a9a04");
171 List<String> expectedResponse = new ArrayList<>();
172 expectedResponse.add("01-06E442");
173 expectedResponse.add("01-B989BD");
175 PowerMockito.mockStatic(AaiService.class);
176 PowerMockito.mockStatic(Configuration.class);
177 PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
178 String serviceInstanceUrlAn = "b2ae730f-1d5f-495a-8112-dac017a7348c";
179 String serviceInstanceUrlCn = "cad8fa36-2d55-4c12-a92e-1bd551517a0c";
180 String serviceInstanceUrlTn = "8d0d698e-77f4-4453-8c09-ae2cbe6a9a04";
184 String serviceInstanceAn =
185 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_an_sa1.json")));
186 Mockito.when(restClient.sendGetRequest(Mockito.contains(serviceInstanceUrlAn), Mockito.any()))
187 .thenReturn(new ResponseEntity<Object>(serviceInstanceAn, HttpStatus.OK));
189 String serviceInstanceCn =
190 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_cn_sa1.json")));
191 Mockito.when(restClient.sendGetRequest(Mockito.contains(serviceInstanceUrlCn), Mockito.any()))
192 .thenReturn(new ResponseEntity<Object>(serviceInstanceCn, HttpStatus.OK));
194 String serviceInstanceTn =
195 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_tn_sa1.json")));
196 Mockito.when(restClient.sendGetRequest(Mockito.contains(serviceInstanceUrlTn), Mockito.any()))
197 .thenReturn(new ResponseEntity<Object>(serviceInstanceTn, HttpStatus.OK));
199 } catch (Exception e) {
203 List<String> actualResponse = aaiService.fetchSnssaiOfSliceProfile(sliceProfileList);
204 assertEquals(expectedResponse, actualResponse);
208 public void getSnssaiListForNsiTest() throws Exception {
209 configuration.setAaiUrl("http://aai:30233/aai/v21");
210 List<String> expectedResponse = new ArrayList<>();
211 expectedResponse.add("01-06E442");
212 expectedResponse.add("01-B989BD");
213 PowerMockito.mockStatic(AaiService.class);
214 PowerMockito.mockStatic(Configuration.class);
215 PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
219 String allotedResource =
220 new String(Files.readAllBytes(Paths.get("src/test/resources/alloted-resource.json")));
222 restClient.sendGetRequest(Mockito.contains("0835fd19-6726-4081-befb-cc8932c47767"), Mockito.any()))
223 .thenReturn(new ResponseEntity<Object>(allotedResource, HttpStatus.OK));
225 String serviceInstance = new String(Files.readAllBytes(Paths.get("src/test/resources/nsi.json")));
227 restClient.sendGetRequest(Mockito.contains("09cad94e-fbb8-4c70-9c4d-74ec75e97683"), Mockito.any()))
228 .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK));
230 String serviceInstanceAn =
231 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_an_sa1.json")));
233 restClient.sendGetRequest(Mockito.contains("b2ae730f-1d5f-495a-8112-dac017a7348c"), Mockito.any()))
234 .thenReturn(new ResponseEntity<Object>(serviceInstanceAn, HttpStatus.OK));
236 String serviceInstanceCn =
237 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_cn_sa1.json")));
239 restClient.sendGetRequest(Mockito.contains("cad8fa36-2d55-4c12-a92e-1bd551517a0c"), Mockito.any()))
240 .thenReturn(new ResponseEntity<Object>(serviceInstanceCn, HttpStatus.OK));
242 String serviceInstanceTn =
243 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_tn_sa1.json")));
245 restClient.sendGetRequest(Mockito.contains("8d0d698e-77f4-4453-8c09-ae2cbe6a9a04"), Mockito.any()))
246 .thenReturn(new ResponseEntity<Object>(serviceInstanceTn, HttpStatus.OK));
248 } catch (Exception e) {
252 List<String> actualResponse = aaiService.getSnssaiList("09cad94e-fbb8-4c70-9c4d-74ec75e97683");
253 assertEquals(expectedResponse, actualResponse);
257 public void getSnssaiListForNssiTest() throws Exception {
258 configuration.setAaiUrl("http://aai:30233/aai/v21");
259 List<String> expectedResponse = new ArrayList<>();
260 expectedResponse.add("01-06E442");
261 PowerMockito.mockStatic(AaiService.class);
262 PowerMockito.mockStatic(Configuration.class);
263 PowerMockito.when(Configuration.getInstance()).thenReturn(configuration);
266 String nssi = new String(Files.readAllBytes(Paths.get("src/test/resources/nssi.json")));
268 restClient.sendGetRequest(Mockito.contains("50f418a6-804f-4453-bf70-21f0efaf6fcd"), Mockito.any()))
269 .thenReturn(new ResponseEntity<Object>(nssi, HttpStatus.OK));
271 String serviceInstanceAn =
272 new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_an_sa1.json")));
274 restClient.sendGetRequest(Mockito.contains("b2ae730f-1d5f-495a-8112-dac017a7348c"), Mockito.any()))
275 .thenReturn(new ResponseEntity<Object>(serviceInstanceAn, HttpStatus.OK));
277 } catch (Exception e) {
281 List<String> actualResponse = aaiService.getSnssaiList("50f418a6-804f-4453-bf70-21f0efaf6fcd");
282 assertEquals(expectedResponse, actualResponse);