492f40e374fb1c68bd7128e43b6fbb147adeb06f
[oam/tr069-adapter.git] / mapper / src / test / java / org / commscope / tr069adapter / mapper / ACSNotificationHandlerImplTest.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 static org.junit.Assert.assertEquals;\r
22 import static org.junit.Assert.assertNotNull;\r
23 import static org.junit.Assert.assertNull;\r
24 \r
25 import java.util.ArrayList;\r
26 import java.util.List;\r
27 \r
28 import org.commscope.tr069adapter.acs.common.DeviceDetails;\r
29 import org.commscope.tr069adapter.acs.common.DeviceInform;\r
30 import org.commscope.tr069adapter.acs.common.ParameterDTO;\r
31 import org.commscope.tr069adapter.acs.common.dto.TR069InformType;\r
32 import org.commscope.tr069adapter.acs.common.inform.BootInform;\r
33 import org.commscope.tr069adapter.acs.common.inform.BootstrapInform;\r
34 import org.commscope.tr069adapter.acs.common.inform.ValueChangeInform;\r
35 import org.commscope.tr069adapter.mapper.acs.impl.ACSNotificationHandlerImpl;\r
36 import org.commscope.tr069adapter.mapper.boot.MapperServiceBooter;\r
37 import org.commscope.tr069adapter.mapper.model.NetConfServerDetails;\r
38 import org.commscope.tr069adapter.mapper.model.NetconfServerManagementError;\r
39 import org.commscope.tr069adapter.mapper.netconf.NetConfServerManager;\r
40 import org.junit.Test;\r
41 import org.junit.runner.RunWith;\r
42 import org.mockito.Mock;\r
43 import org.mockito.Mockito;\r
44 import org.springframework.beans.factory.annotation.Autowired;\r
45 import org.springframework.boot.test.context.SpringBootTest;\r
46 import org.springframework.test.context.junit4.SpringRunner;\r
47 \r
48 @SpringBootTest(classes = {MapperServiceBooter.class})\r
49 @RunWith(SpringRunner.class)\r
50 public class ACSNotificationHandlerImplTest {\r
51 \r
52   @Autowired\r
53   ACSNotificationHandlerImpl aCSNotificationHandlerImpl;\r
54 \r
55   @Mock\r
56   NetConfServerManager netConfServerManager;\r
57 \r
58   @Test\r
59   public void testHandleBootStrapNotification() {\r
60 \r
61     BootstrapInform notification = new BootstrapInform();\r
62     List<ParameterDTO> params = new ArrayList<ParameterDTO>();\r
63     ParameterDTO param = new ParameterDTO();\r
64     param.setParamName("ExpeditedEvent");\r
65     params.add(param);\r
66     notification.setDeviceDetails(getDeviceDetails());\r
67     notification.setParameters(params);\r
68     NetConfServerDetails serverInfo = new NetConfServerDetails();\r
69     serverInfo.setError(NetconfServerManagementError.SUCCESS);\r
70     Mockito.when(netConfServerManager.createNetconfServer(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))\r
71         .thenReturn(serverInfo);\r
72     /*\r
73      * String URI = "http://tr069adapter-netconf-server:8181/netConfServerManagerService";\r
74      * Mockito.when(netConfServerManager.getNetconfServerManagerRestUri()). thenReturn(value)\r
75      */\r
76     aCSNotificationHandlerImpl.handleNotification(notification);\r
77     assertNull(notification.getValueChangeNotification());\r
78   }\r
79 \r
80   @Test\r
81   public void testHandleBootStrapNotificationNegativeScenario() {\r
82 \r
83     BootstrapInform notification = new BootstrapInform();\r
84     List<ParameterDTO> params = new ArrayList<ParameterDTO>();\r
85     ParameterDTO param = new ParameterDTO();\r
86     param.setParamName("Test");\r
87     params.add(param);\r
88     notification.setDeviceDetails(getDeviceDetails());\r
89     notification.setParameters(params);\r
90     // Mockito.doReturn(null).when(netConfServerManager.createNetconfServer(Mockito.anyString(),\r
91     // Mockito.anyString()));\r
92     aCSNotificationHandlerImpl.handleNotification(notification);\r
93     assertNull(notification.getValueChangeNotification());\r
94   }\r
95 \r
96   @Test\r
97   public void testHandleBootNotification() {\r
98 \r
99     BootInform notification = new BootInform();\r
100     List<ParameterDTO> params = new ArrayList<ParameterDTO>();\r
101     ParameterDTO param = new ParameterDTO();\r
102     param.setParamName("Test");\r
103     params.add(param);\r
104     notification.setDeviceDetails(getDeviceDetails());\r
105     notification.setParameters(params);\r
106     aCSNotificationHandlerImpl.handleNotification(notification);\r
107     assertNull(notification.getValueChangeNotification());\r
108   }\r
109 \r
110   @Test\r
111   public void testGetDeviceBootNotification() {\r
112     DeviceInform deviceInform = new DeviceInform();\r
113     deviceInform.setDeviceDetails(getDeviceDetails());\r
114     deviceInform.setParameters(getGeneralParams());\r
115 \r
116     BootInform bInform =\r
117         ACSNotificationHandlerImpl.getDeviceBootNotification(deviceInform, TR069InformType.BOOT);\r
118     assertEquals("00005B9A1", bInform.getDeviceDetails().getDeviceId());\r
119     assertNotNull(bInform.getInformTypeList());\r
120     assertEquals(TR069InformType.BOOT, bInform.getInformTypeList().get(0));\r
121   }\r
122 \r
123   @Test\r
124   public void testGetDeviceBooStraptNotification() {\r
125     DeviceInform deviceInform = new DeviceInform();\r
126     deviceInform.setDeviceDetails(getDeviceDetails());\r
127     deviceInform.setParameters(getGeneralParams());\r
128 \r
129     BootstrapInform bsInform = ACSNotificationHandlerImpl\r
130         .getDeviceBootStrapNotification(deviceInform, TR069InformType.BOOTSTRAP);\r
131     assertEquals("00005B9A1", bsInform.getDeviceDetails().getDeviceId());\r
132     assertNotNull(bsInform.getInformTypeList());\r
133     assertEquals(TR069InformType.BOOTSTRAP, bsInform.getInformTypeList().get(0));\r
134   }\r
135 \r
136   @Test\r
137   public void testGetDeviceValueChangeNotification() {\r
138     DeviceInform deviceInform = new DeviceInform();\r
139     deviceInform.setDeviceDetails(getDeviceDetails());\r
140     deviceInform.setParameters(getGeneralParams());\r
141 \r
142     ValueChangeInform vInform = ACSNotificationHandlerImpl\r
143         .getDeviceValueChangeNotification(deviceInform, TR069InformType.VALUECHANGE);\r
144     assertEquals("00005B9A1", vInform.getDeviceDetails().getDeviceId());\r
145     assertNotNull(vInform.getInformTypeList());\r
146     assertEquals(TR069InformType.VALUECHANGE, vInform.getInformTypeList().get(0));\r
147   }\r
148 \r
149   private DeviceDetails getDeviceDetails() {\r
150     DeviceDetails nf = new DeviceDetails();\r
151     nf.setDeviceId("00005B9A1");\r
152     nf.setDeviceTypeId(50);\r
153     nf.setOui("0005B9");\r
154     nf.setProductClass("LTE_Enterprise_C-RANSC_Cntrl");\r
155     return nf;\r
156   }\r
157 \r
158   private DeviceDetails getDeviceDetailsNegativeCase() {\r
159     DeviceDetails nf = new DeviceDetails();\r
160     // nf.setDeviceId("00005B9A1");\r
161     nf.setDeviceTypeId(50);\r
162     nf.setOui("0005B9");\r
163     nf.setProductClass("LTE_Enterprise_C-RANSC_Cntrl");\r
164     return nf;\r
165   }\r
166 \r
167   private ArrayList<ParameterDTO> getGeneralParams() {\r
168     ArrayList<ParameterDTO> params = new ArrayList<>();\r
169     params.add(new ParameterDTO("Device.DeviceInfo.ManufacturerOUI", "0005B9"));\r
170     params.add(new ParameterDTO("Device.DeviceInfo.ProductClass", "LTE_Enterprise_C-RANSC_Cntrl"));\r
171     params.add(new ParameterDTO("Device.DeviceInfo.HardwareVersion", "750742.00.04"));\r
172     params.add(new ParameterDTO("Device.DeviceInfo.SoftwareVersion", "4.3.00.231"));\r
173     params.add(new ParameterDTO("Device.DeviceInfo.Manufacturer", "ORAN"));\r
174     params.add(new ParameterDTO("Device.DeviceInfo.SerialNumber", "00005B9A1"));\r
175     params.add(new ParameterDTO("Device.IP.Interface.1.IPv4Address.1.IPAddress", "10.211.5.55"));\r
176     return params;\r
177   }\r
178 }\r