2 * ============LICENSE_START========================================================================
3 * ONAP : tr-069-adapter
4 * =================================================================================================
5 * Copyright (C) 2020 CommScope Inc Intellectual Property.
6 * =================================================================================================
7 * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,
8 * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You
9 * may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
14 * either express or implied. See the License for the specific language governing permissions and
15 * limitations under the License.
16 * ===============LICENSE_END=======================================================================
19 package org.commscope.tr069adapter.acs.cpe.deviceconnection;
21 import static org.junit.Assert.assertTrue;
22 import static org.junit.Assert.fail;
24 import java.io.Serializable;
25 import java.util.Date;
27 import org.apache.activemq.broker.BrokerService;
28 import org.commscope.tr069adapter.acs.booter.ACSServiceBooter;
29 import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
30 import org.commscope.tr069adapter.acs.common.OperationResponse;
31 import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;
32 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;
33 import org.commscope.tr069adapter.acs.common.utils.AcsConstants;
34 import org.commscope.tr069adapter.acs.cpe.handler.ConnectionReqEventHandler;
35 import org.commscope.tr069adapter.acs.cpe.utils.DeviceConnector;
36 import org.commscope.tr069adapter.acs.requestprocessor.dao.DeviceRepository;
37 import org.commscope.tr069adapter.acs.requestprocessor.entity.TR069DeviceEntity;
38 import org.commscope.tr069adapter.common.timer.TimerServiceManagerAPI;
39 import org.junit.After;
40 import org.junit.Test;
41 import org.junit.runner.RunWith;
42 import org.mockito.Mockito;
43 import org.springframework.beans.factory.annotation.Autowired;
44 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
45 import org.springframework.boot.test.context.SpringBootTest;
46 import org.springframework.boot.test.mock.mockito.MockBean;
47 import org.springframework.test.context.ContextConfiguration;
48 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
50 @SpringBootTest(classes = {ACSServiceBooter.class})
51 @RunWith(SpringJUnit4ClassRunner.class)
54 public class DeviceConnectTest {
57 ConnectionReqEventHandler connectionReqEventHandler;
60 private DeviceConnector deviceConnector;
63 private TimerServiceManagerAPI timerServiceManagerAPI;
69 private DeviceRepository deviceRepository;
73 public void deviceConnect() {
75 Mockito.doNothing().when(timerServiceManagerAPI).startTimer(Mockito.anyString(),
76 Mockito.anyString(), Mockito.anyLong(), Mockito.any(Serializable.class));
78 DeviceRPCResponse response = new DeviceRPCResponse();
79 OperationResponse operationResponse = new OperationResponse();
80 operationResponse.setOperationCode(TR069OperationCode.INITIATE_CR);
81 operationResponse.setStatus(AcsConstants.HTTP_STATUS_OK);
82 response.setOperationResponse(operationResponse);
83 Mockito.when(deviceConnector.requestConnectionHttp(Mockito.any(TR069DeviceDetails.class)))
84 .thenReturn(response);
86 TR069DeviceDetails deviceDetails = new TR069DeviceDetails();
87 deviceDetails.setDeviceId("0005B9AAAA22");
88 deviceDetails.setConnectionRequestURL("http://10.10.10.10:8888/connect/device");
90 TR069DeviceEntity tr069DeviceEntity = new TR069DeviceEntity();
91 tr069DeviceEntity.setDeviceId(deviceDetails.getDeviceId());
92 tr069DeviceEntity.setUserName(deviceDetails.getUsername());
93 tr069DeviceEntity.setPassword(deviceDetails.getPassword());
94 tr069DeviceEntity.setLastUpdatedTime(new Date());
95 tr069DeviceEntity.setConnStatus(true);
96 tr069DeviceEntity.setErrorMsg(null);
98 if (deviceDetails.getSoftwareVersion() != null) {
99 tr069DeviceEntity.setSwVersion(deviceDetails.getSoftwareVersion());
101 if (deviceDetails.getHardwareVersion() != null) {
102 tr069DeviceEntity.setHwVersion(deviceDetails.getHardwareVersion());
104 Mockito.when(deviceRepository.findByDeviceId(Mockito.anyString()))
105 .thenReturn(tr069DeviceEntity);
107 Mockito.when(deviceRepository.save(Mockito.any(TR069DeviceEntity.class)))
108 .thenReturn(tr069DeviceEntity);
110 connectionReqEventHandler.onMessage(deviceDetails);
113 } catch (Exception e) {
114 fail(e.getMessage());
120 public void stopBroker() throws Exception {
122 System.out.println("Tearing down the broker");
124 broker.waitUntilStopped();
126 } catch (Exception e) {