Initial source code
[oam/tr069-adapter.git] / acs / application-booter / src / test / java / org / commscope / tr069adapter / acs / cpe / test / DeviceRPCRequestHandlerTests.java
diff --git a/acs/application-booter/src/test/java/org/commscope/tr069adapter/acs/cpe/test/DeviceRPCRequestHandlerTests.java b/acs/application-booter/src/test/java/org/commscope/tr069adapter/acs/cpe/test/DeviceRPCRequestHandlerTests.java
new file mode 100644 (file)
index 0000000..97ee892
--- /dev/null
@@ -0,0 +1,165 @@
+/*\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.test;\r
+\r
+import static org.junit.Assert.assertTrue;\r
+import static org.junit.Assert.fail;\r
+\r
+import org.apache.activemq.broker.BrokerService;\r
+import org.commscope.tr069adapter.acs.booter.ACSServiceBooter;\r
+import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
+import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
+import org.commscope.tr069adapter.acs.requestprocessor.dao.DeviceRepository;\r
+import org.commscope.tr069adapter.acs.requestprocessor.dao.SessionRepository;\r
+import org.commscope.tr069adapter.acs.requestprocessor.dto.SessionState;\r
+import org.commscope.tr069adapter.acs.requestprocessor.handler.DeviceRPCRequestHandler;\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.context.SpringBootTest;\r
+import org.springframework.boot.test.mock.mockito.MockBean;\r
+import org.springframework.jms.core.JmsTemplate;\r
+import org.springframework.test.context.junit4.SpringRunner;\r
+\r
+\r
+\r
+/**\r
+ * \r
+ * @version 1.0\r
+ * @since May 28, 2020\r
+ * @author Prashant Kumar\r
+ */\r
+\r
+@RunWith(SpringRunner.class)\r
+@SpringBootTest(classes = {ACSServiceBooter.class})\r
+public class DeviceRPCRequestHandlerTests {\r
+\r
+  // @Autowired\r
+  // private MockMvc mockMvc;\r
+\r
+  @Autowired\r
+  BrokerService broker;\r
+\r
+  @Autowired\r
+  DeviceRPCRequestHandler deviceRPCRequestHandler;\r
+\r
+  @MockBean\r
+  DeviceRepository deviceRepository;\r
+\r
+  @MockBean\r
+  SessionRepository sessionRepository;\r
+\r
+  @MockBean\r
+  private JmsTemplate jmsTemplate;\r
+\r
+\r
+  @Test\r
+  public void spvSuccessTest() {\r
+\r
+    Mockito.when(deviceRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
+        .thenReturn(RequestProcessorTestsUtils.getTR069DeviceEntity());\r
+\r
+    Mockito.when(sessionRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
+        .thenReturn(RequestProcessorTestsUtils.getSessionManagerEntity());\r
+\r
+    Mockito.doNothing().when(jmsTemplate).convertAndSend(Mockito.anyString(),\r
+        Mockito.any(Object.class));\r
+\r
+    DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();\r
+    deviceRPCRequest.setOperationId(10L);\r
+    deviceRPCRequest.setDeviceDetails(RequestProcessorTestsUtils.getDeviceDetails());\r
+    deviceRPCRequest.setOpDetails(\r
+        RequestProcessorTestsUtils.getOperationDetails(TR069OperationCode.SET_PARAMETER_VALUES));\r
+    deviceRPCRequest.setOptions(RequestProcessorTestsUtils.getOperationOptions(60000L));\r
+\r
+    try {\r
+      deviceRPCRequestHandler.onMessage(deviceRPCRequest);\r
+      assertTrue(true);\r
+    } catch (Exception e) {\r
+      fail(e.getMessage());\r
+    }\r
+  }\r
+\r
+  @Test\r
+  public void spvWithTerminatedSessionTest() {\r
+\r
+    Mockito.when(deviceRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
+        .thenReturn(RequestProcessorTestsUtils.getTR069DeviceEntity());\r
+\r
+    Mockito.when(sessionRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
+        .thenReturn(RequestProcessorTestsUtils.getSessionManagerEntity(SessionState.TERMINATED));\r
+\r
+    Mockito.doNothing().when(jmsTemplate).convertAndSend(Mockito.anyString(),\r
+        Mockito.any(Object.class));\r
+\r
+    DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();\r
+    deviceRPCRequest.setOperationId(10L);\r
+    deviceRPCRequest.setDeviceDetails(RequestProcessorTestsUtils.getDeviceDetails());\r
+    deviceRPCRequest.setOpDetails(\r
+        RequestProcessorTestsUtils.getOperationDetails(TR069OperationCode.SET_PARAMETER_VALUES));\r
+    deviceRPCRequest.setOptions(RequestProcessorTestsUtils.getOperationOptions(60000L));\r
+\r
+    try {\r
+      deviceRPCRequestHandler.onMessage(deviceRPCRequest);\r
+      assertTrue(true);\r
+    } catch (Exception e) {\r
+      fail(e.getMessage());\r
+    }\r
+  }\r
+\r
+\r
+  //\r
+  // @Test\r
+  // public void concurrentSessionExceptionTest() throws SessionConcurrentAccessException {\r
+  //\r
+  // Mockito.when(deviceRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
+  // .thenReturn(RequestProcessorTestsUtils.getTR069DeviceEntity());\r
+  //\r
+  // Mockito.when(sessionManager.getLockedSession(RequestProcessorTestsUtils.macId))\r
+  // .thenThrow(new SessionConcurrentAccessException("concurrent session modification"));\r
+  //\r
+  //\r
+  // DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();\r
+  // deviceRPCRequest.setOperationId(10L);\r
+  // deviceRPCRequest.setDeviceDetails(RequestProcessorTestsUtils.getDeviceDetails());\r
+  // deviceRPCRequest.setOpDetails(RequestProcessorTestsUtils.getOperationDetails(TR069OperationCode.SetParameterValues));\r
+  // deviceRPCRequest.setOptions(RequestProcessorTestsUtils.getOperationOptions(60000L));\r
+  //\r
+  // try {\r
+  // deviceRPCRequestHandler.onMessage(deviceRPCRequest);\r
+  // fail("concurrent session modification use case failed");\r
+  // } catch (Exception e) {\r
+  // assertTrue(true);\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