/* * ============LICENSE_START======================================================= * Ran Simulator Controller * ================================================================================ * 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. * 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.ransim.rest.api.services; import static org.junit.Assert.assertEquals; import com.fasterxml.jackson.databind.ObjectMapper; 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.Mock; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import org.onap.ransim.rest.api.models.NSSAIConfig; import org.onap.ransim.rest.api.services.RANSliceConfigService; import org.onap.ransim.rest.web.mapper.GNBCUCPModel; import org.onap.ransim.rest.web.mapper.GNBCUUPModel; import org.onap.ransim.rest.web.mapper.GNBDUModel; import org.onap.ransim.rest.web.mapper.NRCellCUModel; import org.onap.ransim.rest.web.mapper.NRCellDUModel; import org.onap.ransim.rest.web.mapper.NearRTRICModel; import org.onap.ransim.rest.web.mapper.RANSliceInfoModel; import org.springframework.context.annotation.PropertySource; @RunWith(MockitoJUnitRunner.class) @PropertySource("classpath:ransim.properties") public class TestRANSliceConfigServices { @Mock RANSliceConfigService rANSliceConfigService; ObjectMapper objectMapper = new ObjectMapper(); @Test public void testSaveGNBCUCP() { String input = "{\"gNBCUName\":\"cucpserver1\",\"gNBId\":98763,\"gNBIdLength\":5,\"pLMNId\":\"310-410\",\"nFType\":\"CUCP\",\"nearRTRICId\":11,\"cellCUList\":[{\"cellLocalId\":103594000,\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-093\",\"status\":\"ACTIVE\",\"configData\":{\"maxNumberOfConns\":3000}}}]}]}"; GNBCUCPModel gNBCUCPModel = new GNBCUCPModel(); try { gNBCUCPModel = objectMapper.readValue(input, GNBCUCPModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(gNBCUCPModel).when(rANSliceConfigService).saveGNBCUCP(gNBCUCPModel); assertEquals(gNBCUCPModel, rANSliceConfigService.saveGNBCUCP(gNBCUCPModel)); } @Test public void testFetchGNBCUCPData() { String cuCPName = "cucpserver1"; GNBCUCPModel gNBCUCPModel = new GNBCUCPModel(); Mockito.doReturn(gNBCUCPModel).when(rANSliceConfigService).fetchGNBCUCPData(cuCPName); assertEquals(gNBCUCPModel, rANSliceConfigService.fetchGNBCUCPData(cuCPName)); } @Test public void testSaveGNBDU() { String input = "{\"gNBDUId\":1,\"gNBId\":98763,\"gNBIdLength\":5,\"pLMNId\":\"310-410\",\"gNBDUName\":\"gnduserver1\",\"nFType\":\"DU\",\"nearRTRICId\":11,\"cellDUList\":[{\"cellLocalId\":103593999,\"operationalState\":\"ENABLED\",\"administrativeState\":\"UNLOCKED\",\"cellState\":\"ACTIVE\",\"nRPCI\":12,\"nRTAC\":310,\"resourceType\":\"PRB\",\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":50,\"uLThptPerSlice\":40}}}]}]}"; GNBDUModel gNBDUModel = new GNBDUModel(); try { gNBDUModel = objectMapper.readValue(input, GNBDUModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(gNBDUModel).when(rANSliceConfigService).saveGNBDU(gNBDUModel); assertEquals(gNBDUModel, rANSliceConfigService.saveGNBDU(gNBDUModel)); } @Test public void testFetchGNBDUData() { int gNBDUId = 1; GNBDUModel gNBDUModel = new GNBDUModel(); Mockito.doReturn(gNBDUModel).when(rANSliceConfigService).fetchGNBDUData(gNBDUId); assertEquals(gNBDUModel, rANSliceConfigService.fetchGNBDUData(gNBDUId)); } @Test public void testSaveGNBCUUP() { String input = "{\"gNBCUUPId\":1111,\"gNBId\":98763,\"gNBIdLength\":2,\"resourceType\":\"DRB\",\"nearRTRICId\":11,\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"maxNumberOfConns\":3000}}}]}"; GNBCUUPModel gNBCUUPModel = new GNBCUUPModel(); try { gNBCUUPModel = objectMapper.readValue(input, GNBCUUPModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(gNBCUUPModel).when(rANSliceConfigService).saveGNBCUUP(gNBCUUPModel); assertEquals(gNBCUUPModel, rANSliceConfigService.saveGNBCUUP(gNBCUUPModel)); } @Test public void testFetchGNBCUUPData() { Integer gNBCUUPId = 1111; String response = "{\"gNBCUUPId\":1111,\"gNBId\":98763,\"gNBIdLength\":2,\"resourceType\":\"DRB\",\"nearRTRICId\":11,\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"maxNumberOfConns\":3000}}}]}"; GNBCUUPModel gNBCUUPModel = new GNBCUUPModel(); try { gNBCUUPModel = objectMapper.readValue(response, GNBCUUPModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(gNBCUUPModel).when(rANSliceConfigService).fetchGNBCUUPData(gNBCUUPId); assertEquals(gNBCUUPModel, rANSliceConfigService.fetchGNBCUUPData(gNBCUUPId)); } @Test public void testSaveNearRTRIC() { NearRTRICModel nearRTRIC = new NearRTRICModel(); String input = "{\"nearRTRICId\":11,\"gNBId\":98763,\"trackingArea\":[\"Kingston\"],\"resourceType\":\"NearRTRIC\",\"ranNFNSSIList\":[\"11\",\"22\"],\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":55,\"uLThptPerSlice\":40}}}]}"; try { nearRTRIC = objectMapper.readValue(input, NearRTRICModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(nearRTRIC).when(rANSliceConfigService).saveNearRTRIC(nearRTRIC); assertEquals(nearRTRIC, rANSliceConfigService.saveNearRTRIC(nearRTRIC)); } @Test public void testFetchNearRTRICData() { int nearRTRICId = 11; String response = "{\"nearRTRICId\":11,\"gNBId\":98763,\"trackingArea\":[\"Kingston\"],\"resourceType\":\"NearRTRIC\",\"ranNFNSSIList\":[\"11\",\"22\"],\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":55,\"uLThptPerSlice\":40}}}]}"; NearRTRICModel nearRTRIC = new NearRTRICModel(); try { nearRTRIC = objectMapper.readValue(response, NearRTRICModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(nearRTRIC).when(rANSliceConfigService).fetchNearRTRICData(nearRTRICId); assertEquals(nearRTRIC, rANSliceConfigService.fetchNearRTRICData(nearRTRICId)); } @Test public void testFindRICsInTA() { String nSSAI = "01-000100"; List ricsList = new ArrayList<>(); String ricModel = "{\"nearRTRICId\":11,\"gNBId\":98763,\"trackingArea\":[\"Kingston\"],\"resourceType\":\"NearRTRIC\",\"ranNFNSSIList\":[\"11\",\"22\"],\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":55,\"uLThptPerSlice\":40}}}]}"; NearRTRICModel nearRTRIC = new NearRTRICModel(); try { nearRTRIC = objectMapper.readValue(ricModel, NearRTRICModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ricsList.add(nearRTRIC); Mockito.doReturn(ricsList).when(rANSliceConfigService).findRICsInTA(Mockito.anyString()); assertEquals(ricsList, rANSliceConfigService.findRICsInTA(nSSAI)); } @Test public void testfindNearRTRICofCells() { List cellIds = new ArrayList(); cellIds.add(23456); cellIds.add(45785); List ricsList = new ArrayList<>(); String ricModel = "{\"nearRTRICId\":11,\"gNBId\":98763,\"trackingArea\":[\"Kingston\"],\"resourceType\":\"NearRTRIC\",\"ranNFNSSIList\":[\"11\",\"22\"],\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":55,\"uLThptPerSlice\":40}}}]}"; NearRTRICModel nearRTRIC = new NearRTRICModel(); try { nearRTRIC = objectMapper.readValue(ricModel, NearRTRICModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ricsList.add(nearRTRIC); Mockito.doReturn(ricsList).when(rANSliceConfigService).findNearRTRICofCells(Mockito.anyList()); assertEquals(ricsList, rANSliceConfigService.findNearRTRICofCells(cellIds)); } @Test public void testUpdateRANInventory() { String input = "{\"ranNFNSSIId\":\"11\",\"ranNSSIList\":[\"ran3\"],\"nSSAIList\":[\"001-003\",\"001-001\"],\"sliceProfilesList\":[{\"sliceProfileId\":12,\"dLThptPerSlice\":1,\"uLThptPerSlice\":2,\"maxNumberofConns\":3,\"sNSSAI\":\"001-003\"}],\"trackingAreaList\":\"Chennai\",\"subnetStatus\":\"ACTIVE\",\"nsstId\":\"NSSTID1\",\"sliceType\":\"eMBB\",\"isShareable\":\"true\"}"; RANSliceInfoModel inventorynfo = new RANSliceInfoModel(); try { inventorynfo = objectMapper.readValue(input, RANSliceInfoModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(inventorynfo).when(rANSliceConfigService).updateRANInventory(Mockito.anyObject()); assertEquals(inventorynfo, rANSliceConfigService.updateRANInventory(inventorynfo)); } @Test public void testFetchRANSlice() { String ranNFNSSIId = "11"; String input = "{\"ranNFNSSIId\":\"11\",\"ranNSSIList\":[\"ran3\"],\"nSSAIList\":[\"001-003\",\"001-001\"],\"sliceProfilesList\":[{\"sliceProfileId\":12,\"dLThptPerSlice\":1,\"uLThptPerSlice\":2,\"maxNumberofConns\":3,\"sNSSAI\":\"001-003\"}],\"trackingAreaList\":\"Chennai\",\"subnetStatus\":\"ACTIVE\",\"nsstId\":\"NSSTID1\",\"sliceType\":\"eMBB\",\"isShareable\":\"true\"}"; RANSliceInfoModel inventorynfo = new RANSliceInfoModel(); try { inventorynfo = objectMapper.readValue(input, RANSliceInfoModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } Mockito.doReturn(inventorynfo).when(rANSliceConfigService).fetchRANSlice(ranNFNSSIId); assertEquals(inventorynfo, rANSliceConfigService.fetchRANSlice(ranNFNSSIId)); } @Test public void testFetchCellsofTA() { String trackingArea = "Kingston"; List cellIds = new ArrayList(); cellIds.add("23456"); cellIds.add("45785"); Mockito.doReturn(cellIds).when(rANSliceConfigService).fetchCellsofTA(Mockito.anyString()); assertEquals(cellIds, rANSliceConfigService.fetchCellsofTA(trackingArea)); } @Test public void testFetchCUCellsofRIC() { Integer nearRTRICId = 1; List cellCUList = new ArrayList<>(); Mockito.doReturn(cellCUList).when(rANSliceConfigService).fetchCUCellsofRIC(Mockito.anyInt()); assertEquals(cellCUList, rANSliceConfigService.fetchCUCellsofRIC(nearRTRICId));; } @Test public void testFetchDUCellsofRIC() { String sNSSAI = "001-00001"; Map> cellsMap = new HashMap>(); Mockito.doReturn(cellsMap).when(rANSliceConfigService).fetchDUCellsofRIC(Mockito.anyString()); assertEquals(cellsMap, rANSliceConfigService.fetchDUCellsofRIC(sNSSAI));; } @Test public void testFindNearRTRICByNSSI() { String ranNFNSSIID = "11"; List ricsList = new ArrayList<>(); String ricModel = "{\"nearRTRICId\":11,\"gNBId\":98763,\"trackingArea\":[\"Kingston\"],\"resourceType\":\"NearRTRIC\",\"ranNFNSSIList\":[\"11\",\"22\"],\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":55,\"uLThptPerSlice\":40}}}]}"; NearRTRICModel nearRTRIC = new NearRTRICModel(); try { nearRTRIC = objectMapper.readValue(ricModel, NearRTRICModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ricsList.add(nearRTRIC); Mockito.doReturn(ricsList).when(rANSliceConfigService).findNearRTRICByNSSI(Mockito.anyString()); assertEquals(ricsList, rANSliceConfigService.findNearRTRICByNSSI(ranNFNSSIID)); } @Test public void testFindRICsByNSSAI() { String sNSSAI = "001-00001"; List ricsList = new ArrayList<>(); String ricModel = "{\"nearRTRICId\":11,\"gNBId\":98763,\"trackingArea\":[\"Kingston\"],\"resourceType\":\"NearRTRIC\",\"ranNFNSSIList\":[\"11\",\"22\"],\"pLMNInfoList\":[{\"pLMNId\":\"310-410\",\"sNSSAI\":{\"sNSSAI\":\"001-003\",\"status\":\"ACTIVE\",\"configData\":{\"dLThptPerSlice\":55,\"uLThptPerSlice\":40}}}]}"; NearRTRICModel nearRTRIC = new NearRTRICModel(); try { nearRTRIC = objectMapper.readValue(ricModel, NearRTRICModel.class); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } ricsList.add(nearRTRIC); Mockito.doReturn(ricsList).when(rANSliceConfigService).findRICsByNSSAI(Mockito.anyString()); assertEquals(ricsList, rANSliceConfigService.findRICsByNSSAI(sNSSAI)); } @Test public void testFindSliceProfileconfig() { String sNSSAI = "001-00001"; Map configDetails = new HashMap(); configDetails.put("dLThptPerSlice", 40); configDetails.put("uLThptPerSlice", 50); Mockito.doReturn(configDetails).when(rANSliceConfigService).findSliceProfileconfig(Mockito.anyString()); assertEquals(configDetails, rANSliceConfigService.findSliceProfileconfig(sNSSAI)); } @Test public void testFindSliceeconfig() { String sNSSAI = "001-00001"; Map configMap = new HashMap(); Mockito.doReturn(configMap).when(rANSliceConfigService).findSliceConfig(Mockito.anyString()); assertEquals(configMap, rANSliceConfigService.findSliceConfig(sNSSAI)); } @Test public void testFindDUsofSNssai() { String sNSSAI = "001-00001"; List duModels = new ArrayList(); Mockito.doReturn(duModels).when(rANSliceConfigService).findDUsofSNssai(Mockito.anyString()); assertEquals(duModels, rANSliceConfigService.findDUsofSNssai(sNSSAI)); } @Test public void testFindCUsofSNssai() { String sNSSAI = "001-00001"; List cuModels = new ArrayList(); Mockito.doReturn(cuModels).when(rANSliceConfigService).findCUsofSNssai(Mockito.anyString()); assertEquals(cuModels, rANSliceConfigService.findCUsofSNssai(sNSSAI)); } @Test public void testGetSubscriberDetails() { String sNSSAI = "001-00001"; Map details = new HashMap(); Mockito.doReturn(details).when(rANSliceConfigService).getSubscriberDetails(Mockito.anyString()); assertEquals(details, rANSliceConfigService.getSubscriberDetails(sNSSAI)); } @Test public void testFindAllCUCPFunctions() { List cucpModels = new ArrayList(); Mockito.doReturn(cucpModels).when(rANSliceConfigService).findAllCUCPFunctions(); assertEquals(cucpModels, rANSliceConfigService.findAllCUCPFunctions()); } @Test public void testFindAllDUFunctions() { List duModels = new ArrayList(); Mockito.doReturn(duModels).when(rANSliceConfigService).findAllDUFunctions(); assertEquals(duModels, rANSliceConfigService.findAllDUFunctions()); } }