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