76bd4ba5255b0f21093822affca060f6e6a6ba01
[oam/tr069-adapter.git] / mapper / src / test / java / org / commscope / tr069adapter / mapper / NetConfServerManagerTest.java
1 /*\r
2  * ============LICENSE_START========================================================================\r
3  * ONAP : tr-069-adapter\r
4  * =================================================================================================\r
5  * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
6  * =================================================================================================\r
7  * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
8  * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
9  * may obtain a copy of the License at\r
10  *\r
11  * http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
14  * either express or implied. See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  * ===============LICENSE_END=======================================================================\r
17  */\r
18 \r
19 package org.commscope.tr069adapter.mapper;\r
20 \r
21 import java.util.ArrayList;\r
22 \r
23 import org.commscope.tr069adapter.acs.common.DeviceDetails;\r
24 import org.commscope.tr069adapter.acs.common.DeviceInform;\r
25 import org.commscope.tr069adapter.acs.common.InformType;\r
26 import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
27 import org.commscope.tr069adapter.acs.common.dto.TR069InformType;\r
28 import org.commscope.tr069adapter.acs.common.inform.BootstrapInform;\r
29 import org.commscope.tr069adapter.mapper.boot.MapperServiceBooter;\r
30 import org.commscope.tr069adapter.mapper.model.NetConfServerDetails;\r
31 import org.commscope.tr069adapter.mapper.model.VESNotificationResponse;\r
32 import org.commscope.tr069adapter.mapper.netconf.NetConfNotificationSender;\r
33 import org.commscope.tr069adapter.mapper.netconf.NetConfServerManager;\r
34 import org.commscope.tr069adapter.mapper.ves.VESNotificationSender;\r
35 import org.junit.Assert;\r
36 import org.junit.Test;\r
37 import org.junit.runner.RunWith;\r
38 import org.mockito.Mockito;\r
39 import org.springframework.beans.factory.annotation.Autowired;\r
40 import org.springframework.boot.test.context.SpringBootTest;\r
41 import org.springframework.boot.test.mock.mockito.MockBean;\r
42 import org.springframework.http.HttpStatus;\r
43 import org.springframework.http.ResponseEntity;\r
44 import org.springframework.test.context.junit4.SpringRunner;\r
45 import org.springframework.web.client.RestTemplate;\r
46 \r
47 @SpringBootTest(classes = {MapperServiceBooter.class})\r
48 @RunWith(SpringRunner.class)\r
49 public class NetConfServerManagerTest {\r
50 \r
51   @Autowired\r
52   NetConfServerManager server;\r
53 \r
54   @Autowired\r
55   NetConfNotificationSender nfSender;\r
56 \r
57   @Autowired\r
58   VESNotificationSender vesSender;\r
59 \r
60   @MockBean\r
61   RestTemplate restTemplate;\r
62 \r
63   @Test\r
64   public void createServerTest() {\r
65     ResponseEntity<Object> res = new ResponseEntity<Object>(\r
66         new NetConfServerDetails("0005B9A1", "10.221.55.14", "17830"), HttpStatus.ACCEPTED);\r
67     Mockito.when(\r
68         restTemplate.postForEntity(Mockito.anyString(), Mockito.anyObject(), Mockito.anyObject()))\r
69         .thenReturn(res);\r
70     NetConfServerDetails nfDetails = server.createNetconfServer("0005B9A1", "EnodB1", "4.3.0.0", "*");\r
71 \r
72     Assert.assertNotNull(nfDetails);\r
73     Assert.assertEquals("17830", nfDetails.getListenPort());\r
74   }\r
75 \r
76   @Test\r
77   public void createServerFailureWithRestCallTest() {\r
78     NetConfServerDetails nfDetails = server.createNetconfServer("0005B9A1", "EnodB1", "4.3.0.0", "*");\r
79     Assert.assertNull(nfDetails);\r
80   }\r
81 \r
82   @Test\r
83   public void sendNotificaionTest() {\r
84     ResponseEntity res = new ResponseEntity<>(HttpStatus.ACCEPTED);\r
85     Mockito.when(\r
86         restTemplate.postForObject(Mockito.anyString(), Mockito.anyObject(), Mockito.anyObject()))\r
87         .thenReturn(res);\r
88     DeviceInform inform = new BootstrapInform();\r
89     inform.setDeviceDetails(getDeviceDetails());\r
90     ArrayList<InformType> list = new ArrayList<>();\r
91     list.add(TR069InformType.BOOTSTRAP);\r
92     inform.setInformTypeList(list);\r
93     inform.setParameters(getGeneralParams());\r
94     ResponseEntity response = nfSender.sendNotification(inform);\r
95     Assert.assertNotNull(response);\r
96     Assert.assertEquals(HttpStatus.ACCEPTED, response.getStatusCode());\r
97   }\r
98 \r
99   @Test\r
100   public void sendNotificaionInformNullTest() {\r
101     ResponseEntity res = new ResponseEntity<>(HttpStatus.ACCEPTED);\r
102     Mockito.when(\r
103         restTemplate.postForObject(Mockito.anyString(), Mockito.anyObject(), Mockito.anyObject()))\r
104         .thenReturn(res);\r
105     ResponseEntity response = nfSender.sendNotification(null);\r
106     Assert.assertNull(response);\r
107   }\r
108 \r
109   @Test\r
110   public void sendVesEventTest() {\r
111 \r
112     Mockito.when(\r
113         restTemplate.postForObject(Mockito.anyString(), Mockito.anyObject(), Mockito.anyObject()))\r
114         .thenReturn(new VESNotificationResponse(202, "sucess"));\r
115 \r
116     DeviceInform inform = new BootstrapInform();\r
117     inform.setDeviceDetails(getDeviceDetails());\r
118     ArrayList<InformType> list = new ArrayList<InformType>();\r
119     list.add(TR069InformType.BOOTSTRAP);\r
120     inform.setInformTypeList(list);\r
121     inform.setParameters(getGeneralParams());\r
122     VESNotificationResponse response = vesSender.sendNotification(inform,\r
123         new NetConfServerDetails("0005B9A1", "10.221.55.14", "17830"));\r
124     Assert.assertNotNull(response);\r
125     Assert.assertEquals(202, response.getStatusCode());\r
126   }\r
127 \r
128   private ArrayList<ParameterDTO> getGeneralParams() {\r
129     ArrayList<ParameterDTO> params = new ArrayList<>();\r
130     params.add(new ParameterDTO("Device.DeviceInfo.ManufacturerOUI", "0005B9"));\r
131     params.add(new ParameterDTO("Device.DeviceInfo.ProductClass", "LTE_Enterprise_C-RANSC_Cntrl"));\r
132     params.add(new ParameterDTO("Device.Services.FAPService.1.CellConfig.LTE.EPC.PLMNList.1.PLMNID",\r
133         "30324"));\r
134     params.add(new ParameterDTO(\r
135         "Device.Services.FAPService.1.CellConfig.LTE.EPC.PLMNList.1.IsPrimary", "1"));\r
136     params.add(\r
137         new ParameterDTO("Device.Services.FAPService.1.CellConfig.LTE.EPC.PLMNList.1.Enable", "0"));\r
138     return params;\r
139   }\r
140 \r
141   private DeviceDetails getDeviceDetails() {\r
142     DeviceDetails nf = new DeviceDetails();\r
143     nf.setDeviceId("00005B9A1");\r
144     nf.setDeviceTypeId(50);\r
145     nf.setOui("0005B9");\r
146     nf.setProductClass("LTE_Enterprise_C-RANSC_Cntrl");\r
147     return nf;\r
148   }\r
149 }\r