summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/controller/ControllerTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/controller/ControllerTest.java')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/controller/ControllerTest.java262
1 files changed, 262 insertions, 0 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/controller/ControllerTest.java b/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/controller/ControllerTest.java
new file mode 100644
index 00000000..0bcf8637
--- /dev/null
+++ b/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/controller/ControllerTest.java
@@ -0,0 +1,262 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License 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.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License 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.onap.portalsdk.analytics.controller;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.when;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.portalsdk.analytics.error.ReportSQLException;
+import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
+import org.onap.portalsdk.analytics.system.AppUtils;
+import org.onap.portalsdk.analytics.system.Globals;
+import org.onap.portalsdk.analytics.util.AppConstants;
+import org.onap.portalsdk.analytics.xmlobj.MockitoTestSuite;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({Globals.class, AppUtils.class})
+public class ControllerTest {
+ Controller controller;
+ String ACTION_KEY = "testAction";
+ Action action;
+ ActionMapping actionMapping;
+ private String ACTION = "testAction";
+ private String CONTROLLER_CLASS = "org.onap.portalsdk.analytics.controller.DummyController";
+ private String PRIVATE_CONTROLLER_CLASS = "org.onap.portalsdk.analytics.controller.PrivateDummyController";
+ private String ABSTRACT_CONTROLLER_CLASS = "org.onap.portalsdk.analytics.controller.AbstractDummyController";
+ private String CONTROLLER_METHOD = "view";
+ private String JSP_NAME = "testJsp";
+ private String ERROR_PAGE = "errorPage";
+ private String ERROR_MESSAGE = "testErrorMessage";
+ private String TEST_ID = "testID";
+ private String REPORT_NAME = "testReport";
+ private String REPORT_SQL = "testReportSQL";
+ private String LOG_VAR_IN_SESSION = "test";
+
+ @Before
+ public void setup() {
+ controller = new Controller();
+ MockitoAnnotations.initMocks(this);
+ }
+
+ MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+ HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
+ HttpServletResponse mockResponse = mockitoTestSuite.getMockedResponse();
+
+ @Test
+ public void processRequestTest_WhenClassNotFoundException() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action(ACTION, "AdminController", CONTROLLER_METHOD, JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(ERROR_PAGE, controller.processRequest(ACTION_KEY, mockedRequest));
+ }
+
+ @Test
+ public void processRequestTest_WhenActionIsNull() throws Exception {
+ actionMapping = new ActionMapping();
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(ERROR_PAGE, controller.processRequest(ACTION_KEY, mockedRequest));
+ }
+
+ @Test
+ public void processRequestTest() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action("report.run", CONTROLLER_CLASS, CONTROLLER_METHOD, JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(JSP_NAME, controller.processRequest(mockedRequest));
+ }
+
+
+ @Test
+ public void processRequestTest_WithNoSuchMethodException() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action(ACTION, CONTROLLER_CLASS, "viewHome", JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(ERROR_PAGE, controller.processRequest(ACTION_KEY, mockedRequest));
+ }
+
+
+ @Test
+ public void handleRequestTest() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action("report.run", CONTROLLER_CLASS, CONTROLLER_METHOD, JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ ServletContext sc= Mockito.mock(ServletContext.class);
+ RequestDispatcher mockedRequestDispatcher = Mockito.mock(RequestDispatcher.class);
+ when(sc.getRequestDispatcher(Mockito.any(String.class))).thenReturn(mockedRequestDispatcher);
+ Mockito.doNothing().when(mockedRequestDispatcher).forward(Mockito.any(HttpServletRequest.class), Mockito.any(HttpServletResponse.class));
+ controller.handleRequest(mockedRequest, mockResponse,sc);
+ }
+
+ @Test
+ public void processRequestTest_WithIllegalAccess() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action(ACTION, PRIVATE_CONTROLLER_CLASS, "", JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(ERROR_PAGE, controller.processRequest(ACTION_KEY, mockedRequest));
+ }
+
+
+ @Test
+ public void processRequestTest_WithInvocationTargetException() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action(ACTION, CONTROLLER_CLASS, "throwInvocationTarget", JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(ERROR_PAGE, controller.processRequest(ACTION_KEY, mockedRequest));
+ }
+
+
+ @Test
+ public void processRequestTest_WithInstantiationException() throws Exception {
+ actionMapping = new ActionMapping();
+ action = new Action(ACTION, ABSTRACT_CONTROLLER_CLASS, "throwInstantiation", JSP_NAME);
+ actionMapping.addAction(action);
+ PowerMockito.mockStatic(Globals.class);
+ PowerMockito.mockStatic(AppUtils.class);
+ when(Globals.getRaptorActionMapping()).thenReturn(actionMapping);
+ HttpSession session = mockedRequest.getSession();
+ when(Globals.getLogVariablesInSession()).thenReturn(LOG_VAR_IN_SESSION);
+ ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
+ when(rr.getReportID()).thenReturn(TEST_ID);
+ when(rr.getReportName()).thenReturn(REPORT_NAME);
+ when(session.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
+ ReportSQLException rse = new ReportSQLException(ERROR_MESSAGE,REPORT_SQL);
+ PowerMockito.doNothing().when(AppUtils.class, "processErrorNotification", new Object[]{mockedRequest, rse});
+ when(AppUtils.getErrorPage()).thenReturn(ERROR_PAGE);
+ assertEquals(ERROR_PAGE, controller.processRequest(ACTION_KEY, mockedRequest));
+ }
+
+
+
+
+} \ No newline at end of file