31264e8cf079492a2950bf0540e41e920316722b
[dcaegen2/services.git] /
1 /*******************************************************************************
2  *  ============LICENSE_START=======================================================
3  *  slice-analysis-ms
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
10  *
11  *          http://www.apache.org/licenses/LICENSE-2.0
12  *
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=========================================================
19  *
20  *******************************************************************************/
21
22 package org.onap.slice.analysis.ms.aai;
23
24 import static org.junit.Assert.assertEquals;
25
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;
31 import java.util.Map;
32
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;
49
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 {
56
57     Configuration configuration = Configuration.getInstance();
58
59     @InjectMocks
60     AaiService aaiService;
61
62     @Mock
63     AaiRestClient restClient;
64
65     @Test
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);
74         try {
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));
79
80         } catch (Exception e) {
81             e.printStackTrace();
82
83         }
84         assertEquals(responsemap, aaiService.fetchCurrentConfigurationOfSlice("001-010000"));
85     }
86
87     @Test
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");
95
96         try {
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));
101
102         } catch (Exception e) {
103             e.printStackTrace();
104
105         }
106
107         assertEquals(responseMap, aaiService.fetchServiceDetails("001-00110"));
108     }
109
110     @Test
111     public void fetchSubscriberAndSubscriptionServiceTypeTest() throws Exception {
112
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);
120
121         try {
122
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));
127
128         } catch (Exception e) {
129             e.printStackTrace();
130         }
131
132         Map<String, String> actualResponse = aaiService.fetchSubscriberAndSubscriptionServiceType();
133         assertEquals(expectedResponse, actualResponse);
134     }
135
136     @Test
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);
148
149         try {
150
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));
155
156         } catch (Exception e) {
157             e.printStackTrace();
158
159         }
160         List<String> actualResponse = aaiService.fetchSliceProfilesOfAllotedResourceData(allotedResourceList);
161         assertEquals(expectedResponse, actualResponse);
162     }
163
164     @Test
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");
174
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";
181
182         try {
183
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));
188
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));
193
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));
198
199         } catch (Exception e) {
200             e.printStackTrace();
201
202         }
203         List<String> actualResponse = aaiService.fetchSnssaiOfSliceProfile(sliceProfileList);
204         assertEquals(expectedResponse, actualResponse);
205     }
206
207     @Test
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);
216
217         try {
218
219             String allotedResource =
220                     new String(Files.readAllBytes(Paths.get("src/test/resources/alloted-resource.json")));
221             Mockito.when(
222                     restClient.sendGetRequest(Mockito.contains("0835fd19-6726-4081-befb-cc8932c47767"), Mockito.any()))
223                     .thenReturn(new ResponseEntity<Object>(allotedResource, HttpStatus.OK));
224
225             String serviceInstance = new String(Files.readAllBytes(Paths.get("src/test/resources/nsi.json")));
226             Mockito.when(
227                     restClient.sendGetRequest(Mockito.contains("09cad94e-fbb8-4c70-9c4d-74ec75e97683"), Mockito.any()))
228                     .thenReturn(new ResponseEntity<Object>(serviceInstance, HttpStatus.OK));
229
230             String serviceInstanceAn =
231                     new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_an_sa1.json")));
232             Mockito.when(
233                     restClient.sendGetRequest(Mockito.contains("b2ae730f-1d5f-495a-8112-dac017a7348c"), Mockito.any()))
234                     .thenReturn(new ResponseEntity<Object>(serviceInstanceAn, HttpStatus.OK));
235
236             String serviceInstanceCn =
237                     new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_cn_sa1.json")));
238             Mockito.when(
239                     restClient.sendGetRequest(Mockito.contains("cad8fa36-2d55-4c12-a92e-1bd551517a0c"), Mockito.any()))
240                     .thenReturn(new ResponseEntity<Object>(serviceInstanceCn, HttpStatus.OK));
241
242             String serviceInstanceTn =
243                     new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_tn_sa1.json")));
244             Mockito.when(
245                     restClient.sendGetRequest(Mockito.contains("8d0d698e-77f4-4453-8c09-ae2cbe6a9a04"), Mockito.any()))
246                     .thenReturn(new ResponseEntity<Object>(serviceInstanceTn, HttpStatus.OK));
247
248         } catch (Exception e) {
249             e.printStackTrace();
250
251         }
252         List<String> actualResponse = aaiService.getSnssaiList("09cad94e-fbb8-4c70-9c4d-74ec75e97683");
253         assertEquals(expectedResponse, actualResponse);
254     }
255
256     @Test
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);
264         try {
265
266             String nssi = new String(Files.readAllBytes(Paths.get("src/test/resources/nssi.json")));
267             Mockito.when(
268                     restClient.sendGetRequest(Mockito.contains("50f418a6-804f-4453-bf70-21f0efaf6fcd"), Mockito.any()))
269                     .thenReturn(new ResponseEntity<Object>(nssi, HttpStatus.OK));
270
271             String serviceInstanceAn =
272                     new String(Files.readAllBytes(Paths.get("src/test/resources/sliceprofile_an_sa1.json")));
273             Mockito.when(
274                     restClient.sendGetRequest(Mockito.contains("b2ae730f-1d5f-495a-8112-dac017a7348c"), Mockito.any()))
275                     .thenReturn(new ResponseEntity<Object>(serviceInstanceAn, HttpStatus.OK));
276
277         } catch (Exception e) {
278             e.printStackTrace();
279
280         }
281         List<String> actualResponse = aaiService.getSnssaiList("50f418a6-804f-4453-bf70-21f0efaf6fcd");
282         assertEquals(expectedResponse, actualResponse);
283     }
284 }