Fix: Update Sonar needed parameters
[oam/tr069-adapter.git] / acs / application-booter / src / test / java / org / commscope / tr069adapter / acs / cpe / test / emptyrequest / EmptyRequestWithPendingRequest.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.emptyrequest;\r
20 \r
21 import static org.junit.Assert.assertEquals;\r
22 import static org.junit.Assert.fail;\r
23 \r
24 import javax.servlet.http.Cookie;\r
25 \r
26 import org.apache.activemq.broker.BrokerService;\r
27 import org.apache.commons.httpclient.HttpStatus;\r
28 import org.commscope.tr069adapter.acs.booter.ACSServiceBooter;\r
29 import org.commscope.tr069adapter.acs.common.DeviceRPCRequest;\r
30 import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails;\r
31 import org.commscope.tr069adapter.acs.common.utils.AcsConstants;\r
32 import org.commscope.tr069adapter.acs.requestprocessor.DeviceOperationInterface;\r
33 import org.commscope.tr069adapter.acs.requestprocessor.dao.DeviceRPCRequestRepositoryHelper;\r
34 import org.commscope.tr069adapter.acs.requestprocessor.dto.SessionDTO;\r
35 import org.commscope.tr069adapter.acs.requestprocessor.impl.SessionManager;\r
36 import org.junit.After;\r
37 import org.junit.Test;\r
38 import org.junit.runner.RunWith;\r
39 import org.mockito.Mockito;\r
40 import org.springframework.beans.factory.annotation.Autowired;\r
41 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;\r
42 import org.springframework.boot.test.context.SpringBootTest;\r
43 import org.springframework.boot.test.mock.mockito.MockBean;\r
44 import org.springframework.http.MediaType;\r
45 import org.springframework.mock.web.MockHttpServletResponse;\r
46 import org.springframework.test.context.ContextConfiguration;\r
47 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;\r
48 import org.springframework.test.web.servlet.MockMvc;\r
49 import org.springframework.test.web.servlet.MvcResult;\r
50 import org.springframework.test.web.servlet.RequestBuilder;\r
51 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;\r
52 \r
53 @SpringBootTest(classes = {ACSServiceBooter.class})\r
54 @RunWith(SpringJUnit4ClassRunner.class)\r
55 @AutoConfigureMockMvc\r
56 @ContextConfiguration\r
57 public abstract class EmptyRequestWithPendingRequest {\r
58 \r
59   @Autowired\r
60   private MockMvc mockMvc;\r
61 \r
62   @Autowired\r
63   BrokerService broker;\r
64 \r
65   @MockBean\r
66   private SessionManager sessionManager;\r
67 \r
68   @MockBean\r
69   private DeviceOperationInterface deviceOperationInterface;\r
70 \r
71   @MockBean\r
72   protected DeviceRPCRequestRepositoryHelper deviceRPCRequestRepositoryHelper;\r
73 \r
74   @Test\r
75   public void processEmptyRequestWithPendingRequestTest() throws Exception {\r
76     String emptyRequest = "";\r
77     try {\r
78       SessionDTO session = new SessionDTO();\r
79       session.setDeviceId("0005B9519090");\r
80       session.setSessionId("sessionId");\r
81 \r
82       TR069DeviceDetails tr069DeviceDetails = new TR069DeviceDetails();\r
83       tr069DeviceDetails.setDeviceId("0005B9519090");\r
84 \r
85       DeviceRPCRequest deviceRPCRequest = getDeviceRPCRequest(tr069DeviceDetails);\r
86 \r
87       Mockito.when(sessionManager.getSessionBySessionId(Mockito.anyString())).thenReturn(session);\r
88 \r
89       Mockito.when(sessionManager.getLockedSession(Mockito.anyString())).thenReturn(session);\r
90 \r
91       Mockito.when(deviceOperationInterface.getDeviceDetails(Mockito.anyString()))\r
92           .thenReturn(tr069DeviceDetails);\r
93 \r
94       Mockito.when(deviceRPCRequestRepositoryHelper.findOldestDeviceRPCRequest(Mockito.anyString()))\r
95           .thenReturn(deviceRPCRequest);\r
96 \r
97       Cookie cookie = new Cookie(AcsConstants.ACS_SESSIONID, "sessionId");\r
98 \r
99       RequestBuilder requestBuilder = MockMvcRequestBuilders.post("/CPEMgmt/acs")\r
100           .accept(MediaType.TEXT_PLAIN).content(emptyRequest).header("Authorization", "basic")\r
101           .cookie(cookie).contentType(MediaType.TEXT_PLAIN);\r
102 \r
103       MvcResult result = mockMvc.perform(requestBuilder).andReturn();\r
104 \r
105       MockHttpServletResponse response = result.getResponse();\r
106       assertEquals(HttpStatus.SC_OK, response.getStatus());\r
107 \r
108     } catch (Exception e) {\r
109       fail(e.getMessage());\r
110     }\r
111   }\r
112 \r
113   public abstract DeviceRPCRequest getDeviceRPCRequest(TR069DeviceDetails tr069DeviceDetails);\r
114 \r
115 \r
116   @After\r
117   public void stopBroker() throws Exception {\r
118     try {\r
119       System.out.println("Tearing down the broker");\r
120       broker.stop();\r
121       broker.waitUntilStopped();\r
122       broker = null;\r
123     } catch (Exception e) {\r
124       e.printStackTrace();\r
125     }\r
126   }\r
127 }\r