Development of NETCONF RPCs for tr-069 adapter to
[oam/tr069-adapter.git] / acs / application-booter / src / test / java / org / commscope / tr069adapter / acs / cpe / deviceconnection / DeviceConnectTest.java
index 0907d13..29e7c26 100644 (file)
-/*\r
- * ============LICENSE_START========================================================================\r
- * ONAP : tr-069-adapter\r
- * =================================================================================================\r
- * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
- * =================================================================================================\r
- * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
- * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
- * may obtain a copy of the License at\r
- *\r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
- * either express or implied. See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ===============LICENSE_END=======================================================================\r
- */\r
-\r
-package org.commscope.tr069adapter.acs.cpe.deviceconnection;\r
-\r
-import static org.junit.Assert.assertTrue;\r
-import static org.junit.Assert.fail;\r
-\r
-import java.io.Serializable;\r
-\r
-import org.apache.activemq.broker.BrokerService;\r
-import org.commscope.tr069adapter.acs.booter.ACSServiceBooter;\r
-import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;\r
-import org.commscope.tr069adapter.acs.common.OperationResponse;\r
-import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;\r
-import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
-import org.commscope.tr069adapter.acs.common.utils.AcsConstants;\r
-import org.commscope.tr069adapter.acs.cpe.handler.ConnectionReqEventHandler;\r
-import org.commscope.tr069adapter.acs.cpe.utils.DeviceConnector;\r
-import org.commscope.tr069adapter.common.timer.TimerServiceManagerAPI;\r
-import org.junit.After;\r
-import org.junit.Test;\r
-import org.junit.runner.RunWith;\r
-import org.mockito.Mockito;\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;\r
-import org.springframework.boot.test.context.SpringBootTest;\r
-import org.springframework.boot.test.mock.mockito.MockBean;\r
-import org.springframework.test.context.ContextConfiguration;\r
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;\r
-\r
-@SpringBootTest(classes = {ACSServiceBooter.class})\r
-@RunWith(SpringJUnit4ClassRunner.class)\r
-@AutoConfigureMockMvc\r
-@ContextConfiguration\r
-public class DeviceConnectTest {\r
-\r
-  @Autowired\r
-  ConnectionReqEventHandler connectionReqEventHandler;\r
-\r
-  @MockBean\r
-  private DeviceConnector deviceConnector;\r
-\r
-  @MockBean\r
-  private TimerServiceManagerAPI timerServiceManagerAPI;\r
-\r
-  @Autowired\r
-  BrokerService broker;\r
-\r
-  @Test\r
-  public void deviceConnect() {\r
-    try {\r
-      Mockito.doNothing().when(timerServiceManagerAPI).startTimer(Mockito.anyString(),\r
-          Mockito.anyString(), Mockito.anyLong(), Mockito.any(Serializable.class));\r
-\r
-      DeviceRPCResponse response = new DeviceRPCResponse();\r
-      OperationResponse operationResponse = new OperationResponse();\r
-      operationResponse.setOperationCode(TR069OperationCode.INITIATE_CR);\r
-      operationResponse.setStatus(AcsConstants.HTTP_STATUS_OK);\r
-      response.setOperationResponse(operationResponse);\r
-      Mockito.when(deviceConnector.requestConnectionHttp(Mockito.any(TR069DeviceDetails.class)))\r
-          .thenReturn(response);\r
-\r
-      TR069DeviceDetails deviceDetails = new TR069DeviceDetails();\r
-      deviceDetails.setDeviceId("0005B9AAAA22");\r
-      deviceDetails.setConnectionRequestURL("http://10.10.10.10:8888/connect/device");\r
-\r
-      connectionReqEventHandler.onMessage(deviceDetails);\r
-\r
-      assertTrue(true);\r
-    } catch (Exception e) {\r
-      fail(e.getMessage());\r
-    }\r
-\r
-  }\r
-\r
-  @After\r
-  public void stopBroker() throws Exception {\r
-    try {\r
-      System.out.println("Tearing down the broker");\r
-      broker.stop();\r
-      broker.waitUntilStopped();\r
-      broker = null;\r
-    } catch (Exception e) {\r
-      e.printStackTrace();\r
-    }\r
-  }\r
-}\r
+/*
+ * ============LICENSE_START========================================================================
+ * ONAP : tr-069-adapter
+ * =================================================================================================
+ * Copyright (C) 2020 CommScope Inc Intellectual Property.
+ * =================================================================================================
+ * This tr-069-adapter software file is distributed by CommScope Inc 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
+ *
+ * This file 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.commscope.tr069adapter.acs.cpe.deviceconnection;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import org.apache.activemq.broker.BrokerService;
+import org.commscope.tr069adapter.acs.booter.ACSServiceBooter;
+import org.commscope.tr069adapter.acs.common.DeviceRPCResponse;
+import org.commscope.tr069adapter.acs.common.OperationResponse;
+import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;
+import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;
+import org.commscope.tr069adapter.acs.common.utils.AcsConstants;
+import org.commscope.tr069adapter.acs.cpe.handler.ConnectionReqEventHandler;
+import org.commscope.tr069adapter.acs.cpe.utils.DeviceConnector;
+import org.commscope.tr069adapter.acs.requestprocessor.dao.DeviceRepository;
+import org.commscope.tr069adapter.acs.requestprocessor.entity.TR069DeviceEntity;
+import org.commscope.tr069adapter.common.timer.TimerServiceManagerAPI;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@SpringBootTest(classes = {ACSServiceBooter.class})
+@RunWith(SpringJUnit4ClassRunner.class)
+@AutoConfigureMockMvc
+@ContextConfiguration
+public class DeviceConnectTest {
+
+  @Autowired
+  ConnectionReqEventHandler connectionReqEventHandler;
+
+  @MockBean
+  private DeviceConnector deviceConnector;
+
+  @MockBean
+  private TimerServiceManagerAPI timerServiceManagerAPI;
+
+  @Autowired
+  BrokerService broker;
+
+  @MockBean
+  private DeviceRepository deviceRepository;
+
+
+  @Test
+  public void deviceConnect() {
+    try {
+      Mockito.doNothing().when(timerServiceManagerAPI).startTimer(Mockito.anyString(),
+          Mockito.anyString(), Mockito.anyLong(), Mockito.any(Serializable.class));
+
+      DeviceRPCResponse response = new DeviceRPCResponse();
+      OperationResponse operationResponse = new OperationResponse();
+      operationResponse.setOperationCode(TR069OperationCode.INITIATE_CR);
+      operationResponse.setStatus(AcsConstants.HTTP_STATUS_OK);
+      response.setOperationResponse(operationResponse);
+      Mockito.when(deviceConnector.requestConnectionHttp(Mockito.any(TR069DeviceDetails.class)))
+          .thenReturn(response);
+
+      TR069DeviceDetails deviceDetails = new TR069DeviceDetails();
+      deviceDetails.setDeviceId("0005B9AAAA22");
+      deviceDetails.setConnectionRequestURL("http://10.10.10.10:8888/connect/device");
+
+      TR069DeviceEntity tr069DeviceEntity = new TR069DeviceEntity();
+      tr069DeviceEntity.setDeviceId(deviceDetails.getDeviceId());
+      tr069DeviceEntity.setUserName(deviceDetails.getUsername());
+      tr069DeviceEntity.setPassword(deviceDetails.getPassword());
+      tr069DeviceEntity.setLastUpdatedTime(new Date());
+      tr069DeviceEntity.setConnStatus(true);
+      tr069DeviceEntity.setErrorMsg(null);
+
+      if (deviceDetails.getSoftwareVersion() != null) {
+        tr069DeviceEntity.setSwVersion(deviceDetails.getSoftwareVersion());
+      }
+      if (deviceDetails.getHardwareVersion() != null) {
+        tr069DeviceEntity.setHwVersion(deviceDetails.getHardwareVersion());
+      }
+      Mockito.when(deviceRepository.findByDeviceId(Mockito.anyString()))
+          .thenReturn(tr069DeviceEntity);
+
+      Mockito.when(deviceRepository.save(Mockito.any(TR069DeviceEntity.class)))
+          .thenReturn(tr069DeviceEntity);
+
+      connectionReqEventHandler.onMessage(deviceDetails);
+
+      assertTrue(true);
+    } catch (Exception e) {
+      fail(e.getMessage());
+    }
+
+  }
+
+  @After
+  public void stopBroker() throws Exception {
+    try {
+      System.out.println("Tearing down the broker");
+      broker.stop();
+      broker.waitUntilStopped();
+      broker = null;
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+}