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
11 * http://www.apache.org/licenses/LICENSE-2.0
\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
19 package org.commscope.tr069adapter.mapper;
\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
25 import java.util.ArrayList;
\r
26 import java.util.List;
\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
48 @SpringBootTest(classes = {MapperServiceBooter.class})
\r
49 @RunWith(SpringRunner.class)
\r
50 public class ACSNotificationHandlerImplTest {
\r
53 ACSNotificationHandlerImpl aCSNotificationHandlerImpl;
\r
56 NetConfServerManager netConfServerManager;
\r
59 public void testHandleBootStrapNotification() {
\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
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()))
\r
71 .thenReturn(serverInfo);
\r
73 * String URI = "http://tr069adapter-netconf-server:8181/netConfServerManagerService";
\r
74 * Mockito.when(netConfServerManager.getNetconfServerManagerRestUri()). thenReturn(value)
\r
76 aCSNotificationHandlerImpl.handleNotification(notification);
\r
77 assertNull(notification.getValueChangeNotification());
\r
81 public void testHandleBootStrapNotificationNegativeScenario() {
\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
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
97 public void testHandleBootNotification() {
\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
104 notification.setDeviceDetails(getDeviceDetails());
\r
105 notification.setParameters(params);
\r
106 aCSNotificationHandlerImpl.handleNotification(notification);
\r
107 assertNull(notification.getValueChangeNotification());
\r
111 public void testGetDeviceBootNotification() {
\r
112 DeviceInform deviceInform = new DeviceInform();
\r
113 deviceInform.setDeviceDetails(getDeviceDetails());
\r
114 deviceInform.setParameters(getGeneralParams());
\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
124 public void testGetDeviceBooStraptNotification() {
\r
125 DeviceInform deviceInform = new DeviceInform();
\r
126 deviceInform.setDeviceDetails(getDeviceDetails());
\r
127 deviceInform.setParameters(getGeneralParams());
\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
137 public void testGetDeviceValueChangeNotification() {
\r
138 DeviceInform deviceInform = new DeviceInform();
\r
139 deviceInform.setDeviceDetails(getDeviceDetails());
\r
140 deviceInform.setParameters(getGeneralParams());
\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
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
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
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