Fix: Update Sonar needed parameters
[oam/tr069-adapter.git] / acs / application-booter / src / test / java / org / commscope / tr069adapter / acs / cpe / test / DeviceRPCRequestHandlerTests.java
1 /*\r
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
10  *\r
11  * http://www.apache.org/licenses/LICENSE-2.0\r
12  *\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
17  */\r
18 \r
19 package org.commscope.tr069adapter.acs.cpe.test;\r
20 \r
21 import static org.junit.Assert.assertTrue;\r
22 import static org.junit.Assert.fail;\r
23 \r
24 import org.apache.activemq.broker.BrokerService;\r
25 import org.commscope.tr069adapter.acs.booter.ACSServiceBooter;\r
26 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
27 import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode;\r
28 import org.commscope.tr069adapter.acs.requestprocessor.dao.DeviceRepository;\r
29 import org.commscope.tr069adapter.acs.requestprocessor.dao.SessionRepository;\r
30 import org.commscope.tr069adapter.acs.requestprocessor.dto.SessionState;\r
31 import org.commscope.tr069adapter.acs.requestprocessor.handler.DeviceRPCRequestHandler;\r
32 import org.junit.After;\r
33 import org.junit.Test;\r
34 import org.junit.runner.RunWith;\r
35 import org.mockito.Mockito;\r
36 import org.springframework.beans.factory.annotation.Autowired;\r
37 import org.springframework.boot.test.context.SpringBootTest;\r
38 import org.springframework.boot.test.mock.mockito.MockBean;\r
39 import org.springframework.jms.core.JmsTemplate;\r
40 import org.springframework.test.context.junit4.SpringRunner;\r
41 \r
42 \r
43 \r
44 /**\r
45  * \r
46  * @version 1.0\r
47  * @since May 28, 2020\r
48  * @author Prashant Kumar\r
49  */\r
50 \r
51 @RunWith(SpringRunner.class)\r
52 @SpringBootTest(classes = {ACSServiceBooter.class})\r
53 public class DeviceRPCRequestHandlerTests {\r
54 \r
55   // @Autowired\r
56   // private MockMvc mockMvc;\r
57 \r
58   @Autowired\r
59   BrokerService broker;\r
60 \r
61   @Autowired\r
62   DeviceRPCRequestHandler deviceRPCRequestHandler;\r
63 \r
64   @MockBean\r
65   DeviceRepository deviceRepository;\r
66 \r
67   @MockBean\r
68   SessionRepository sessionRepository;\r
69 \r
70   @MockBean\r
71   private JmsTemplate jmsTemplate;\r
72 \r
73 \r
74   @Test\r
75   public void spvSuccessTest() {\r
76 \r
77     Mockito.when(deviceRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
78         .thenReturn(RequestProcessorTestsUtils.getTR069DeviceEntity());\r
79 \r
80     Mockito.when(sessionRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
81         .thenReturn(RequestProcessorTestsUtils.getSessionManagerEntity());\r
82 \r
83     Mockito.doNothing().when(jmsTemplate).convertAndSend(Mockito.anyString(),\r
84         Mockito.any(Object.class));\r
85 \r
86     DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();\r
87     deviceRPCRequest.setOperationId(10L);\r
88     deviceRPCRequest.setDeviceDetails(RequestProcessorTestsUtils.getDeviceDetails());\r
89     deviceRPCRequest.setOpDetails(\r
90         RequestProcessorTestsUtils.getOperationDetails(TR069OperationCode.SET_PARAMETER_VALUES));\r
91     deviceRPCRequest.setOptions(RequestProcessorTestsUtils.getOperationOptions(60000L));\r
92 \r
93     try {\r
94       deviceRPCRequestHandler.onMessage(deviceRPCRequest);\r
95       assertTrue(true);\r
96     } catch (Exception e) {\r
97       fail(e.getMessage());\r
98     }\r
99   }\r
100 \r
101   @Test\r
102   public void spvWithTerminatedSessionTest() {\r
103 \r
104     Mockito.when(deviceRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
105         .thenReturn(RequestProcessorTestsUtils.getTR069DeviceEntity());\r
106 \r
107     Mockito.when(sessionRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
108         .thenReturn(RequestProcessorTestsUtils.getSessionManagerEntity(SessionState.TERMINATED));\r
109 \r
110     Mockito.doNothing().when(jmsTemplate).convertAndSend(Mockito.anyString(),\r
111         Mockito.any(Object.class));\r
112 \r
113     DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();\r
114     deviceRPCRequest.setOperationId(10L);\r
115     deviceRPCRequest.setDeviceDetails(RequestProcessorTestsUtils.getDeviceDetails());\r
116     deviceRPCRequest.setOpDetails(\r
117         RequestProcessorTestsUtils.getOperationDetails(TR069OperationCode.SET_PARAMETER_VALUES));\r
118     deviceRPCRequest.setOptions(RequestProcessorTestsUtils.getOperationOptions(60000L));\r
119 \r
120     try {\r
121       deviceRPCRequestHandler.onMessage(deviceRPCRequest);\r
122       assertTrue(true);\r
123     } catch (Exception e) {\r
124       fail(e.getMessage());\r
125     }\r
126   }\r
127 \r
128 \r
129   //\r
130   // @Test\r
131   // public void concurrentSessionExceptionTest() throws SessionConcurrentAccessException {\r
132   //\r
133   // Mockito.when(deviceRepository.findByDeviceId(RequestProcessorTestsUtils.macId))\r
134   // .thenReturn(RequestProcessorTestsUtils.getTR069DeviceEntity());\r
135   //\r
136   // Mockito.when(sessionManager.getLockedSession(RequestProcessorTestsUtils.macId))\r
137   // .thenThrow(new SessionConcurrentAccessException("concurrent session modification"));\r
138   //\r
139   //\r
140   // DeviceRPCRequest deviceRPCRequest = new DeviceRPCRequest();\r
141   // deviceRPCRequest.setOperationId(10L);\r
142   // deviceRPCRequest.setDeviceDetails(RequestProcessorTestsUtils.getDeviceDetails());\r
143   // deviceRPCRequest.setOpDetails(RequestProcessorTestsUtils.getOperationDetails(TR069OperationCode.SetParameterValues));\r
144   // deviceRPCRequest.setOptions(RequestProcessorTestsUtils.getOperationOptions(60000L));\r
145   //\r
146   // try {\r
147   // deviceRPCRequestHandler.onMessage(deviceRPCRequest);\r
148   // fail("concurrent session modification use case failed");\r
149   // } catch (Exception e) {\r
150   // assertTrue(true);\r
151   // }\r
152   // }\r
153 \r
154   @After\r
155   public void stopBroker() throws Exception {\r
156     try {\r
157       System.out.println("Tearing down the broker");\r
158       broker.stop();\r
159       broker.waitUntilStopped();\r
160       broker = null;\r
161     } catch (Exception e) {\r
162       e.printStackTrace();\r
163     }\r
164   }\r
165 }\r