X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=acs%2Fapplication-booter%2Fsrc%2Ftest%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Facs%2Fcpe%2Ftest%2Fopresult%2FDownloadOpResultTest.java;fp=acs%2Fapplication-booter%2Fsrc%2Ftest%2Fjava%2Forg%2Fcommscope%2Ftr069adapter%2Facs%2Fcpe%2Ftest%2Fopresult%2FDownloadOpResultTest.java;h=9bd50ba1cfdc897e3f4cfa935c6b1fda112e4e6a;hb=a58ada8fd244e69cf2ebe48a251fcdd4d48acec4;hp=0000000000000000000000000000000000000000;hpb=5096ffe11e0c38f2a1cc60ccba41d27c1333f22a;p=oam%2Ftr069-adapter.git diff --git a/acs/application-booter/src/test/java/org/commscope/tr069adapter/acs/cpe/test/opresult/DownloadOpResultTest.java b/acs/application-booter/src/test/java/org/commscope/tr069adapter/acs/cpe/test/opresult/DownloadOpResultTest.java new file mode 100644 index 0000000..9bd50ba --- /dev/null +++ b/acs/application-booter/src/test/java/org/commscope/tr069adapter/acs/cpe/test/opresult/DownloadOpResultTest.java @@ -0,0 +1,159 @@ +/* + * ============LICENSE_START======================================================================== + * ONAP : tr-069-adapter + * ================================================================================================= + * Copyright (C) 2020 CommScope Inc Intellectual Property. + * ================================================================================================= + * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License, + * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You + * may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific language governing permissions and + * limitations under the License. + * ===============LICENSE_END======================================================================= + */ + +package org.commscope.tr069adapter.acs.cpe.test.opresult; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.http.Cookie; + +import org.apache.activemq.broker.BrokerService; +import org.apache.commons.httpclient.HttpStatus; +import org.commscope.tr069adapter.acs.booter.ACSServiceBooter; +import org.commscope.tr069adapter.acs.common.DeviceRPCResponse; +import org.commscope.tr069adapter.acs.common.dto.TR069DeviceDetails; +import org.commscope.tr069adapter.acs.common.dto.TR069OperationCode; +import org.commscope.tr069adapter.acs.common.utils.AcsConstants; +import org.commscope.tr069adapter.acs.requestprocessor.DeviceOperationInterface; +import org.commscope.tr069adapter.acs.requestprocessor.dao.DeviceRPCRequestRepositoryHelper; +import org.commscope.tr069adapter.acs.requestprocessor.dto.SessionDTO; +import org.commscope.tr069adapter.acs.requestprocessor.entity.TR069DeviceRPCRequestEntity; +import org.commscope.tr069adapter.acs.requestprocessor.impl.SessionManager; +import org.commscope.tr069adapter.acs.requestprocessor.impl.TR069EventNotificationService; +import org.commscope.tr069adapter.common.timer.TimerServiceManagerAPI; +import org.junit.After; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.RequestBuilder; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; + +@SpringBootTest(classes = {ACSServiceBooter.class}) +@RunWith(SpringJUnit4ClassRunner.class) +@AutoConfigureMockMvc +@ContextConfiguration +public class DownloadOpResultTest { + + @Autowired + private MockMvc mockMvc; + + @Autowired + BrokerService broker; + + @MockBean + private SessionManager sessionManager; + + @MockBean + private DeviceOperationInterface deviceOperationInterface; + + @MockBean + protected DeviceRPCRequestRepositoryHelper deviceRPCRequestRepositoryHelper; + + @MockBean + private TR069EventNotificationService tr069EventNotificationService; + + @MockBean + private TimerServiceManagerAPI timerServiceManagerAPI; + + @Test + public void processOpResultWithNoPendingRequestTest() throws Exception { + String exampleOpResult = + "1265443140"; + + try { + SessionDTO session = new SessionDTO(); + session.setDeviceId("0005B9519095"); + session.setSessionId("sessionId"); + session.setCurrentOperationId(10000L); + + TR069DeviceDetails tr069DeviceDetails = new TR069DeviceDetails(); + tr069DeviceDetails.setDeviceId("0005B9519095"); + + Mockito.when(sessionManager.getSessionBySessionId(Mockito.anyString())).thenReturn(session); + Mockito.when(sessionManager.getLockedSession(Mockito.anyString())).thenReturn(session); + Mockito.when(sessionManager.updateSession(Mockito.any(SessionDTO.class))).thenReturn(session); + + Mockito.when(deviceOperationInterface.getDeviceDetails(Mockito.anyString())) + .thenReturn(tr069DeviceDetails); + + Mockito.when(deviceRPCRequestRepositoryHelper.findOldestDeviceRPCRequest(Mockito.anyString())) + .thenReturn(null); + + List entityList = new ArrayList(); + TR069DeviceRPCRequestEntity entity = new TR069DeviceRPCRequestEntity(); + entity.setOpCode(TR069OperationCode.ADD_OBJECT.getOperationCode()); + entity.setOperationId(10002L); + entity.setRequestTimeOut(300000L); + entity.setDeviceId("0005B9519095"); + + entityList.add(entity); + + Mockito.when(deviceRPCRequestRepositoryHelper + .findByDeviceIdAndOperationId(Mockito.anyString(), Mockito.anyLong())) + .thenReturn(entityList); + + Mockito.doNothing().when(tr069EventNotificationService) + .sendOperationResultToNBI(Mockito.any(DeviceRPCResponse.class)); + Mockito.doNothing().when(deviceRPCRequestRepositoryHelper) + .markDeviceRPCRequestAsProcessed(Mockito.anyString(), Mockito.anyLong()); + Mockito.doNothing().when(timerServiceManagerAPI).startTimer(Mockito.anyString(), + Mockito.anyString(), Mockito.anyLong(), Mockito.any(Serializable.class)); + Mockito.doNothing().when(timerServiceManagerAPI).stopTimer(Mockito.anyString()); + + Cookie cookie = new Cookie(AcsConstants.ACS_SESSIONID, "sessionId"); + RequestBuilder requestBuilder = + MockMvcRequestBuilders.post("/CPEMgmt/acs").accept(MediaType.TEXT_PLAIN) + .content(exampleOpResult).cookie(cookie).contentType(MediaType.TEXT_PLAIN); + + MvcResult result = mockMvc.perform(requestBuilder).andReturn(); + + MockHttpServletResponse response = result.getResponse(); + assertEquals(HttpStatus.SC_NO_CONTENT, response.getStatus()); + + } catch (Exception e) { + fail(e.getMessage()); + } + } + + @After + public void stopBroker() throws Exception { + try { + System.out.println("Tearing down the broker"); + broker.stop(); + broker.waitUntilStopped(); + broker = null; + } catch (Exception e) { + e.printStackTrace(); + } + } +}