--- /dev/null
+/*\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