71d3a1b56f84e1be69d84cbe8917ddb76639ac0c
[portal/sdk.git] /
1 package org.onap.portalsdk.analytics.controller;
2 /*
3  * ============LICENSE_START==========================================
4  * ONAP Portal SDK
5  * ===================================================================
6  * Copyright © 2018 AT&T Intellectual Property. All rights reserved.
7  * ===================================================================
8  *
9  * Unless otherwise specified, all software contained herein is licensed
10  * under the Apache License, Version 2.0 (the "License");
11  * you may not use this software except in compliance with the License.
12  * You may obtain a copy of the License at
13  *
14  *             http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing, software
17  * distributed under the License is distributed on an "AS IS" BASIS,
18  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19  * See the License for the specific language governing permissions and
20  * limitations under the License.
21  *
22  * Unless otherwise specified, all documentation contained herein is licensed
23  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
24  * you may not use this documentation except in compliance with the License.
25  * You may obtain a copy of the License at
26  *
27  *             https://creativecommons.org/licenses/by/4.0/
28  *
29  * Unless required by applicable law or agreed to in writing, documentation
30  * distributed under the License is distributed on an "AS IS" BASIS,
31  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
32  * See the License for the specific language governing permissions and
33  * limitations under the License.
34  *
35  * ============LICENSE_END============================================
36  *
37  * 
38  */
39
40
41 import static org.junit.Assert.assertEquals;
42 import static org.mockito.Mockito.when;
43 import static org.powermock.api.mockito.PowerMockito.whenNew;
44
45 import java.io.IOException;
46 import java.io.InputStream;
47 import java.sql.Connection;
48 import java.sql.PreparedStatement;
49 import java.sql.ResultSet;
50 import java.sql.ResultSetMetaData;
51 import java.util.ArrayList;
52 import java.util.Enumeration;
53 import java.util.List;
54 import java.util.Vector;
55
56 import javax.servlet.http.HttpServletRequest;
57 import javax.servlet.http.HttpServletResponse;
58 import javax.servlet.http.HttpSession;
59
60 import org.apache.commons.io.FilenameUtils;
61 import org.junit.Before;
62 import org.junit.Test;
63 import org.junit.runner.RunWith;
64 import org.mockito.InjectMocks;
65 import org.mockito.Matchers;
66 import org.mockito.Mock;
67 import org.mockito.Mockito;
68 import org.mockito.MockitoAnnotations;
69 import org.onap.portalsdk.analytics.error.RaptorException;
70 import org.onap.portalsdk.analytics.error.ReportSQLException;
71 import org.onap.portalsdk.analytics.model.DataCache;
72 import org.onap.portalsdk.analytics.model.ReportHandler;
73 import org.onap.portalsdk.analytics.model.ReportLoader;
74 import org.onap.portalsdk.analytics.model.SearchHandler;
75 import org.onap.portalsdk.analytics.model.base.IdNameColLookup;
76 import org.onap.portalsdk.analytics.model.base.IdNameList;
77 import org.onap.portalsdk.analytics.model.base.ReportWrapper;
78 import org.onap.portalsdk.analytics.model.definition.ReportDefinition;
79 import org.onap.portalsdk.analytics.model.definition.ReportSchedule;
80 import org.onap.portalsdk.analytics.model.runtime.ChartWebRuntime;
81 import org.onap.portalsdk.analytics.model.runtime.FormField;
82 import org.onap.portalsdk.analytics.model.runtime.ReportFormFields;
83 import org.onap.portalsdk.analytics.model.runtime.ReportJSONRuntime;
84 import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
85 import org.onap.portalsdk.analytics.model.runtime.VisualManager;
86 import org.onap.portalsdk.analytics.model.search.ReportSearchResultJSON;
87 import org.onap.portalsdk.analytics.system.AppUtils;
88 import org.onap.portalsdk.analytics.system.ConnectionUtils;
89 import org.onap.portalsdk.analytics.system.DbUtils;
90 import org.onap.portalsdk.analytics.system.Globals;
91 import org.onap.portalsdk.analytics.system.IAppUtils;
92 import org.onap.portalsdk.analytics.system.fusion.domain.QuickLink;
93 import org.onap.portalsdk.analytics.util.AppConstants;
94 import org.onap.portalsdk.analytics.util.DataSet;
95 import org.onap.portalsdk.analytics.util.Utils;
96 import org.onap.portalsdk.analytics.view.ReportData;
97 import org.onap.portalsdk.analytics.xmlobj.ChartAdditionalOptions;
98 import org.onap.portalsdk.analytics.xmlobj.CustomReportType;
99 import org.onap.portalsdk.analytics.xmlobj.DashboardReports;
100 import org.onap.portalsdk.analytics.xmlobj.DataColumnList;
101 import org.onap.portalsdk.analytics.xmlobj.DataColumnType;
102 import org.onap.portalsdk.analytics.xmlobj.DataSourceList;
103 import org.onap.portalsdk.analytics.xmlobj.DataSourceType;
104 import org.onap.portalsdk.analytics.xmlobj.FormFieldList;
105 import org.onap.portalsdk.analytics.xmlobj.FormFieldType;
106 import org.onap.portalsdk.analytics.xmlobj.FormatList;
107 import org.onap.portalsdk.analytics.xmlobj.FormatType;
108 import org.onap.portalsdk.analytics.xmlobj.MockitoTestSuite;
109 import org.onap.portalsdk.analytics.xmlobj.Reports;
110 import org.onap.portalsdk.analytics.xmlobj.SemaphoreType;
111 import org.onap.portalsdk.core.logging.format.AlarmSeverityEnum;
112 import org.onap.portalsdk.core.util.SecurityCodecUtil;
113 import org.onap.portalsdk.core.web.support.UserUtils;
114 import org.owasp.esapi.ESAPI;
115 import org.owasp.esapi.Encoder;
116 import org.owasp.esapi.codecs.Codec;
117 import org.powermock.api.mockito.PowerMockito;
118 import org.powermock.core.classloader.annotations.PrepareForTest;
119 import org.powermock.modules.junit4.PowerMockRunner;
120
121 @RunWith(PowerMockRunner.class)
122 @PrepareForTest({ AppUtils.class, UserUtils.class, ESAPI.class, AppConstants.class, AlarmSeverityEnum.class, ReportWrapper.class,
123                 ReportDefinition.class, SecurityCodecUtil.class, Globals.class, DbUtils.class, ReportLoader.class, ConnectionUtils.class, FilenameUtils.class, Utils.class, ReportRuntime.class, DataCache.class, ActionHandler.class})
124 public class ActionHandlerTest {
125
126         @InjectMocks
127         ActionHandler actionHandler = new ActionHandler();
128
129         @Mock
130         Connection connection;
131         @Mock
132         PreparedStatement stmt;
133         @Mock
134         ResultSet rs;
135         @Mock
136         java.sql.Clob clob;
137         @Mock
138         InputStream in;
139
140         @Before
141         public void setup() {
142                 MockitoAnnotations.initMocks(this);
143         }
144
145         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
146         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
147         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
148
149         
150         @SuppressWarnings("unchecked")
151         @Test
152         public void reportRunTest_WhenReportTypeIsNotEqualToDashboard() throws Exception {
153                 PowerMockito.mockStatic(Globals.class);
154                 PowerMockito.mockStatic(DbUtils.class);
155                 PowerMockito.mockStatic(ReportLoader.class);
156                 PowerMockito.mockStatic(ReportWrapper.class);
157                 PowerMockito.mockStatic(AppUtils.class);
158                 PowerMockito.mock(AppConstants.class);
159                 PowerMockito.mockStatic(ReportDefinition.class);
160                 PowerMockito.mockStatic(ESAPI.class);
161                 PowerMockito.mockStatic(SecurityCodecUtil.class);
162                 when(mockedRequest.getParameter("action")).thenReturn("test");
163                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
164                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("testxyz");
165                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
166                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
167                 when(mockedRequest.getSession().getAttribute("FirstDashReport")).thenReturn(rr);
168                 when(mockedRequest.getParameter(AppConstants.RI_ACTION)).thenReturn("report.download");
169                 Encoder encoder = PowerMockito.mock(Encoder.class);
170                 when(ESAPI.encoder()).thenReturn(encoder);
171                 Codec codec = PowerMockito.mock(Codec.class);
172                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
173                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
174                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
175                 DataSet set = Mockito.mock(DataSet.class);
176                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
177                 when(DbUtils.getConnection()).thenReturn(connection);
178                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn(null);
179                 when(rr.getReportID()).thenReturn("test");
180                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_SHOW_BACK_BTN)).thenReturn(true);
181                 when(Globals.getLoadCustomReportXml()).thenReturn("java.lang.String");
182                 String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><CustomReportType xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xsi:type=\"xs:string\"><reportName>name</reportName><reportDescr>desc</reportDescr><chartType>type</chartType><showChartTitle>false</showChartTitle><public>false</public><createId>id</createId><pageNav>false</pageNav></CustomReportType>";
183                 when(connection.prepareStatement("1")).thenReturn(stmt);
184                 when(stmt.executeQuery()).thenReturn(rs);
185                 when(Globals.isWeblogicServer()).thenReturn(true);
186                 when(rs.getClob(1)).thenReturn(clob);
187                 when(rs.next()).thenReturn(true);
188                 when(clob.getAsciiStream()).thenReturn(in);
189                 when(in.read(Matchers.any())).thenReturn(1);
190                 when(AppUtils.nvl(rr.getLegendLabelAngle())).thenReturn("standard");
191                 when(AppUtils.nvl("Y")).thenReturn("Y");
192                 when(AppUtils.nvl("bottom")).thenReturn("Y");
193                 when(AppUtils.nvl("test")).thenReturn("test|");
194                 when(AppUtils.getRequestValue(mockedRequest, "c_dashboard")).thenReturn("1");
195                 when(ReportLoader.isDashboardType("-1")).thenReturn(false);
196                 ReportDefinition rdf = PowerMockito.mock(ReportDefinition.class);
197                 whenNew(ReportDefinition.class)
198                                 .withArguments(Matchers.any(ReportWrapper.class), Matchers.any(HttpServletRequest.class))
199                                 .thenReturn(rdf);
200                 when(ReportDefinition.unmarshal(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())).thenReturn(rdf);
201                 CustomReportType crType = Mockito.mock(CustomReportType.class);
202                 when(ReportWrapper.unmarshalCR(Matchers.anyString())).thenReturn(crType);
203                 when(Globals.getReportWrapperFormat()).thenReturn("[Globals.getTimeFormat()]");
204                 when(Globals.getTimeFormat()).thenReturn("[reportID]");
205                 when(Globals.getReportUserAccess()).thenReturn("[reportID]");
206                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(set);
207                 when(set.getString(Matchers.anyInt(), Matchers.anyInt())).thenReturn("test");
208                 when(set.getString(Matchers.anyInt(), Matchers.any(String.class))).thenReturn("test");
209                 when(ReportLoader.loadCustomReportXML("test2")).thenReturn(str);
210                 FormFieldType formFieldType = new FormFieldType();
211                 formFieldType.setFieldId("test");
212                 formFieldType.setColId("1");
213                 formFieldType.setFieldName("test");
214                 formFieldType.setFieldType("type");
215                 formFieldType.setValidationType("validation");
216                 formFieldType.setMandatory("Y");
217                 formFieldType.setDefaultValue("test");
218                 formFieldType.setGroupFormField(true);
219                 List formFieldTypeList = new ArrayList<>();
220                 formFieldTypeList.add(formFieldType);
221                 FormFieldList formFieldList = PowerMockito.mock(FormFieldList.class);
222                 when(formFieldList.getFormField()).thenReturn(formFieldTypeList);
223                 Mockito.when(crType.getFormFieldList()).thenReturn(formFieldList);
224                 when(Globals.getRequestParams()).thenReturn("test,case");
225                 when( Globals.getSessionParams()).thenReturn("test,abc");
226                 when(Globals.getSessionParamsForScheduling()).thenReturn("test");
227                 
228                 DataSourceList dataSourceList = new DataSourceList();
229                 List<DataSourceType> list = new ArrayList<>();
230                 DataSourceType dataSourceType = new DataSourceType();
231                 dataSourceType.setTableName("test");
232                 dataSourceType.setRefTableId("1");
233                 dataSourceType.setTableId("1");
234                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
235                 DataColumnType dataColumnType = new DataColumnType();
236                 dataColumnType.setChartGroup("test");
237                 dataColumnType.setYAxis("test");
238                 dataColumnType.setColName("[test");
239                 dataColumnType.setColOnChart("LEGEND");
240                 dataColumnType.setDisplayName("chart_total");
241                 dataColumnType.setColId("1");
242                 dataColumnType.setTableId("1");
243                 dataColumnType.setColType("DATE");
244                 dataColumnType.setCrossTabValue("ROW");
245                 dataColumnType.setPdfDisplayWidthInPxls("0.0");
246                 dataColumnType.setVisible(true);
247                 dataColumnType.setCalculated(true);
248                 dataColumnTypeList.add(dataColumnType);
249                 DataColumnType dataColumnType1 = new DataColumnType();
250                 dataColumnType1.setCrossTabValue("COLUMN");
251                 dataColumnType1.setColId("1");
252                 dataColumnType1.setVisible(true);
253                 dataColumnType1.setPdfDisplayWidthInPxls("1.0");
254                 dataColumnTypeList.add(dataColumnType1);
255
256                 DataColumnList dataColumnList = new DataColumnList();
257                 //dataColumnList.dataColumn = dataColumnTypeList;
258                 dataSourceType.setDataColumnList(dataColumnList);
259                 list.add(dataSourceType);
260                 //dataSourceList.dataSource = list;
261                 when(crType.getDataSourceList()).thenReturn(dataSourceList);
262
263                 List predefinedValues = new ArrayList<>();
264                 ReportWrapper rw = PowerMockito.mock(ReportWrapper.class);
265                 ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
266                 FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
267                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
268                                 "rangeEndDateSQL", "multiSelectListSize");
269                 FormField formField1 = new FormField("test", "fieldDisplayName", FormField.FFT_LIST_MULTI, "validationType", false,
270                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
271                                 "rangeEndDateSQL", "multiSelectListSize");
272                 FormField formField2 = new FormField("test", "fieldDisplayName", FormField.FFT_BLANK, "validationType", false,
273                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
274                                 "rangeEndDateSQL", "multiSelectListSize");
275
276                 reportFormFields.add(formField);
277                 reportFormFields.add(formField1);
278                 reportFormFields.add(formField2);
279                 rr.setReportFormFields(null);
280                 rr.setReportFormFields(reportFormFields);
281                 when(rr.getReportFormFields()).thenReturn(reportFormFields);
282                 when(mockedRequest.getSession().getAttribute("remoteDB")).thenReturn("test");
283                 Enumeration<String> enums;
284                 Vector<String> attrs = new Vector<String>();
285                 attrs.add("ff_test");
286                 enums = attrs.elements();
287                 when(rr.getParamKeys()).thenReturn(enums);
288                 
289                 DashboardReports daashBoard = Mockito.mock(DashboardReports.class);
290                 when(rdf.getDashBoardReports()).thenReturn(daashBoard);
291                 when(daashBoard.getReportsList()).thenReturn(new ArrayList<Reports>());
292                 String testHTML = "<table border=1><tr><td>[Report#123]</td><td>[Report#124]</td></tr><tr><td>[Report#125]</td><td>[Report#126]</td></tr></table>";
293                 when(rr.getDashboardLayoutHTML()).thenReturn(testHTML);
294                 when(rr.getReportType()).thenReturn("test");
295                 when(mockedRequest.getParameter("refresh")).thenReturn("N");
296                 when(rr.getDisplayContent()).thenReturn(true);
297                 
298                 when(AppUtils.getRequestNvlValue(mockedRequest,AppConstants.RI_VISUAL_ACTION)).thenReturn("test");
299                 when(AppUtils.getRequestNvlValue(mockedRequest,AppConstants.RI_DETAIL_ID)).thenReturn("test");
300                 when(AppUtils.getRequestNvlValue(mockedRequest,AppConstants.RI_DETAIL_ID)).thenReturn("test");
301                 when(rr.isDisplayOptionHideMap()).thenReturn(true);
302                 when(mockedRequest.getSession().getAttribute("isEmbedded")).thenReturn(true);
303                 when(rr.isDrillDownURLInPopupPresent()).thenReturn(true);
304                 ArrayList aL = new ArrayList<>();
305                 ReportRuntime rr1 = PowerMockito.mock(ReportRuntime.class);
306                 when(rr1.getReportID()).thenReturn("test1");
307                 when(rr1.getReportType()).thenReturn("test");
308                 aL.add(rr1);
309                 when(mockedRequest.getSession().getAttribute(AppConstants.DRILLDOWN_REPORTS_LIST)).thenReturn(aL);
310                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_RESET_PARAMS)).thenReturn(true);
311                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_RESET_ACTION)).thenReturn(false);
312                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_GO_BACK)).thenReturn(true);
313                 
314                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
315         }
316         
317         @Test
318         public void reportRunExceptionTest() {
319                 when(mockedRequest.getParameter("action")).thenReturn("test");
320                 PowerMockito.mockStatic(AppUtils.class);
321                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(true);
322                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
323         }
324         
325         @SuppressWarnings("unchecked")
326         @Test
327         public void reportRunTest() throws Exception {
328                 PowerMockito.mockStatic(Globals.class);
329                 PowerMockito.mockStatic(DbUtils.class);
330                 PowerMockito.mockStatic(ReportLoader.class);
331                 PowerMockito.mockStatic(ReportWrapper.class);
332                 PowerMockito.mockStatic(AppUtils.class);
333                 PowerMockito.mock(AppConstants.class);
334                 PowerMockito.mockStatic(ReportDefinition.class);
335                 PowerMockito.mockStatic(ESAPI.class);
336                 PowerMockito.mockStatic(SecurityCodecUtil.class);
337                 when(mockedRequest.getParameter("action")).thenReturn("test");
338                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
339                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("testxyz");
340                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
341                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
342                 when(mockedRequest.getSession().getAttribute("FirstDashReport")).thenReturn(rr);
343                 when(mockedRequest.getParameter(AppConstants.RI_ACTION)).thenReturn("report.download");
344                 Encoder encoder = PowerMockito.mock(Encoder.class);
345                 when(ESAPI.encoder()).thenReturn(encoder);
346                 Codec codec = PowerMockito.mock(Codec.class);
347                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
348                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
349                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
350                 DataSet set = Mockito.mock(DataSet.class);
351                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
352                 when(DbUtils.getConnection()).thenReturn(connection);
353                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn(AppConstants.RT_DASHBOARD);
354                 when(rr.getReportID()).thenReturn(AppConstants.RT_DASHBOARD);
355                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_SHOW_BACK_BTN)).thenReturn(true);
356                 when(Globals.getLoadCustomReportXml()).thenReturn("java.lang.String");
357                 String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><CustomReportType xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xsi:type=\"xs:string\"><reportName>name</reportName><reportDescr>desc</reportDescr><chartType>type</chartType><showChartTitle>false</showChartTitle><public>false</public><createId>id</createId><pageNav>false</pageNav></CustomReportType>";
358                 when(connection.prepareStatement("1")).thenReturn(stmt);
359                 when(stmt.executeQuery()).thenReturn(rs);
360                 when(Globals.isWeblogicServer()).thenReturn(true);
361                 when(rs.getClob(1)).thenReturn(clob);
362                 when(rs.next()).thenReturn(true);
363                 when(clob.getAsciiStream()).thenReturn(in);
364                 when(in.read(Matchers.any())).thenReturn(1);
365                 when(AppUtils.nvl(rr.getLegendLabelAngle())).thenReturn("standard");
366                 when(AppUtils.nvl("Y")).thenReturn("Y");
367                 when(AppUtils.nvl("bottom")).thenReturn("Y");
368                 when(AppUtils.nvl("test")).thenReturn("test|");
369                 when(AppUtils.getRequestValue(mockedRequest, "c_dashboard")).thenReturn("1");
370                 when(ReportLoader.isDashboardType("-1")).thenReturn(false);
371                 ReportDefinition rdf = PowerMockito.mock(ReportDefinition.class);
372                 whenNew(ReportDefinition.class)
373                                 .withArguments(Matchers.any(ReportWrapper.class), Matchers.any(HttpServletRequest.class))
374                                 .thenReturn(rdf);
375                 when(ReportDefinition.unmarshal(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())).thenReturn(rdf);
376                 CustomReportType crType = Mockito.mock(CustomReportType.class);
377                 when(ReportWrapper.unmarshalCR(Matchers.anyString())).thenReturn(crType);
378                 when(Globals.getReportWrapperFormat()).thenReturn("[Globals.getTimeFormat()]");
379                 when(Globals.getTimeFormat()).thenReturn("[reportID]");
380                 when(Globals.getReportUserAccess()).thenReturn("[reportID]");
381                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(set);
382                 when(set.getString(Matchers.anyInt(), Matchers.anyInt())).thenReturn("test");
383                 when(ReportLoader.loadCustomReportXML("test2")).thenReturn(str);
384                 FormFieldType formFieldType = new FormFieldType();
385                 formFieldType.setFieldId("test");
386                 formFieldType.setColId("1");
387                 formFieldType.setFieldName("test");
388                 formFieldType.setFieldType("type");
389                 formFieldType.setValidationType("validation");
390                 formFieldType.setMandatory("Y");
391                 formFieldType.setDefaultValue("test");
392                 formFieldType.setGroupFormField(true);
393                 List formFieldTypeList = new ArrayList<>();
394                 formFieldTypeList.add(formFieldType);
395                 FormFieldList formFieldList = PowerMockito.mock(FormFieldList.class);
396                 when(formFieldList.getFormField()).thenReturn(formFieldTypeList);
397                 Mockito.when(crType.getFormFieldList()).thenReturn(formFieldList);
398                 when(Globals.getRequestParams()).thenReturn("test,case");
399                 when( Globals.getSessionParams()).thenReturn("test,abc");
400                 when(Globals.getSessionParamsForScheduling()).thenReturn("test");
401                 
402                 DataSourceList dataSourceList = new DataSourceList();
403                 List<DataSourceType> list = new ArrayList<>();
404                 DataSourceType dataSourceType = new DataSourceType();
405                 dataSourceType.setTableName("test");
406                 dataSourceType.setRefTableId("1");
407                 dataSourceType.setTableId("1");
408                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
409                 DataColumnType dataColumnType = new DataColumnType();
410                 dataColumnType.setChartGroup("test");
411                 dataColumnType.setYAxis("test");
412                 dataColumnType.setColName("[test");
413                 dataColumnType.setColOnChart("LEGEND");
414                 dataColumnType.setDisplayName("chart_total");
415                 dataColumnType.setColId("1");
416                 dataColumnType.setTableId("1");
417                 dataColumnType.setColType("DATE");
418                 dataColumnType.setCrossTabValue("ROW");
419                 dataColumnType.setPdfDisplayWidthInPxls("0.0");
420                 dataColumnType.setVisible(true);
421                 dataColumnType.setCalculated(true);
422                 dataColumnTypeList.add(dataColumnType);
423                 DataColumnType dataColumnType1 = new DataColumnType();
424                 dataColumnType1.setCrossTabValue("COLUMN");
425                 dataColumnType1.setColId("1");
426                 dataColumnType1.setVisible(true);
427                 dataColumnType1.setPdfDisplayWidthInPxls("1.0");
428                 dataColumnTypeList.add(dataColumnType1);
429
430                 DataColumnList dataColumnList = new DataColumnList();
431                 //dataColumnList.dataColumn = dataColumnTypeList;
432                 dataSourceType.setDataColumnList(dataColumnList);
433                 list.add(dataSourceType);
434                 //dataSourceList.dataSource = list;
435                 when(crType.getDataSourceList()).thenReturn(dataSourceList);
436
437                 List predefinedValues = new ArrayList<>();
438                 ReportWrapper rw = PowerMockito.mock(ReportWrapper.class);
439                 ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
440                 FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
441                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
442                                 "rangeEndDateSQL", "multiSelectListSize");
443                 FormField formField1 = new FormField("test", "fieldDisplayName", FormField.FFT_LIST_MULTI, "validationType", false,
444                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
445                                 "rangeEndDateSQL", "multiSelectListSize");
446                 FormField formField2 = new FormField("test", "fieldDisplayName", FormField.FFT_BLANK, "validationType", false,
447                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
448                                 "rangeEndDateSQL", "multiSelectListSize");
449
450                 reportFormFields.add(formField);
451                 reportFormFields.add(formField1);
452                 reportFormFields.add(formField2);
453                 rr.setReportFormFields(null);
454                 rr.setReportFormFields(reportFormFields);
455                 when(rr.getReportFormFields()).thenReturn(reportFormFields);
456                 when(mockedRequest.getSession().getAttribute("remoteDB")).thenReturn("test");
457                 Enumeration<String> enums;
458                 Vector<String> attrs = new Vector<String>();
459                 attrs.add("ff_test");
460                 enums = attrs.elements();
461                 when(rr.getParamKeys()).thenReturn(enums);
462                 
463                 DashboardReports daashBoard = Mockito.mock(DashboardReports.class);
464                 when(rdf.getDashBoardReports()).thenReturn(daashBoard);
465                 when(daashBoard.getReportsList()).thenReturn(new ArrayList<Reports>());
466                 String testHTML = "<table border=1><tr><td>[Report#123]</td><td>[Report#124]</td></tr><tr><td>[Report#125]</td><td>[Report#126]</td></tr></table>";
467                 when(rr.getDashboardLayoutHTML()).thenReturn(testHTML);
468                 when(rr.getReportType()).thenReturn(AppConstants.RT_DASHBOARD);
469                 when(mockedRequest.getParameter("refresh")).thenReturn("N");
470                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_DISPLAY_CONTENT)).thenReturn(true);
471                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
472         }
473         
474         
475
476         @SuppressWarnings("unchecked")
477         @Test
478         public void reportRunRaptorReportExceptionTest() throws Exception {
479                 try {
480                 PowerMockito.mockStatic(Globals.class);
481                 PowerMockito.mockStatic(DbUtils.class);
482                 PowerMockito.mockStatic(ReportLoader.class);
483                 PowerMockito.mockStatic(ReportWrapper.class);
484                 PowerMockito.mockStatic(AppUtils.class);
485                 PowerMockito.mock(AppConstants.class);
486                 PowerMockito.mockStatic(ReportDefinition.class);
487                 PowerMockito.mockStatic(ESAPI.class);
488                 PowerMockito.mockStatic(SecurityCodecUtil.class);
489                 when(mockedRequest.getParameter("action")).thenReturn("test");
490                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
491                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("testxyz");
492                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
493                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
494                 when(mockedRequest.getSession().getAttribute("FirstDashReport")).thenReturn(rr);
495                 when(mockedRequest.getParameter(AppConstants.RI_ACTION)).thenReturn("report.download");
496                 Encoder encoder = PowerMockito.mock(Encoder.class);
497                 when(ESAPI.encoder()).thenReturn(encoder);
498                 Codec codec = PowerMockito.mock(Codec.class);
499                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
500                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
501                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
502                 DataSet set = Mockito.mock(DataSet.class);
503                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
504                 when(DbUtils.getConnection()).thenReturn(connection);
505                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn("test2");
506                 when(rr.getReportID()).thenReturn("test");
507                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_SHOW_BACK_BTN)).thenReturn(true);
508                 when(Globals.getLoadCustomReportXml()).thenReturn("java.lang.String");
509                 String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><CustomReportType xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xsi:type=\"xs:string\"><reportName>name</reportName><reportDescr>desc</reportDescr><chartType>type</chartType><showChartTitle>false</showChartTitle><public>false</public><createId>id</createId><pageNav>false</pageNav></CustomReportType>";
510                 when(connection.prepareStatement("1")).thenReturn(stmt);
511                 when(stmt.executeQuery()).thenReturn(rs);
512                 when(Globals.isWeblogicServer()).thenReturn(true);
513                 when(rs.getClob(1)).thenReturn(clob);
514                 when(rs.next()).thenReturn(true);
515                 when(clob.getAsciiStream()).thenReturn(in);
516                 when(in.read(Matchers.any())).thenReturn(1);
517                 when(AppUtils.nvl(rr.getLegendLabelAngle())).thenReturn("standard");
518                 when(AppUtils.nvl("Y")).thenReturn("Y");
519                 when(AppUtils.nvl("bottom")).thenReturn("Y");
520                 when(AppUtils.nvl("test")).thenReturn("test|");
521                 when(AppUtils.getRequestValue(mockedRequest, "c_dashboard")).thenReturn("1");
522                 when(ReportLoader.isDashboardType("-1")).thenReturn(false);
523                 ReportDefinition rdf = PowerMockito.mock(ReportDefinition.class);
524                 whenNew(ReportDefinition.class)
525                                 .withArguments(Matchers.any(ReportWrapper.class), Matchers.any(HttpServletRequest.class))
526                                 .thenReturn(rdf);
527                 when(ReportDefinition.unmarshal(Mockito.anyString(), Mockito.anyString(), Mockito.anyObject())).thenReturn(rdf);
528                 CustomReportType crType = Mockito.mock(CustomReportType.class);
529                 when(ReportWrapper.unmarshalCR(Matchers.anyString())).thenReturn(crType);
530                 when(Globals.getReportWrapperFormat()).thenReturn("[Globals.getTimeFormat()]");
531                 when(Globals.getTimeFormat()).thenReturn("[reportID]");
532                 when(Globals.getReportUserAccess()).thenReturn("[reportID]");
533                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(set);
534                 when(set.getString(Matchers.anyInt(), Matchers.anyInt())).thenReturn("test");
535                 when(ReportLoader.loadCustomReportXML("test2")).thenReturn(str);
536                 FormFieldType formFieldType = new FormFieldType();
537                 formFieldType.setFieldId("test");
538                 formFieldType.setColId("1");
539                 formFieldType.setFieldName("test");
540                 formFieldType.setFieldType("type");
541                 formFieldType.setValidationType("validation");
542                 formFieldType.setMandatory("Y");
543                 formFieldType.setDefaultValue("test");
544                 formFieldType.setGroupFormField(true);
545                 List formFieldTypeList = new ArrayList<>();
546                 formFieldTypeList.add(formFieldType);
547                 FormFieldList formFieldList = PowerMockito.mock(FormFieldList.class);
548                 when(formFieldList.getFormField()).thenReturn(formFieldTypeList);
549                 Mockito.when(crType.getFormFieldList()).thenReturn(formFieldList);
550                 when(Globals.getRequestParams()).thenReturn("test,case");
551                 when( Globals.getSessionParams()).thenReturn("test,abc");
552                 when(Globals.getSessionParamsForScheduling()).thenReturn("test");
553                 
554                 DataSourceList dataSourceList = new DataSourceList();
555                 List<DataSourceType> list = new ArrayList<>();
556                 DataSourceType dataSourceType = new DataSourceType();
557                 dataSourceType.setTableName("test");
558                 dataSourceType.setRefTableId("1");
559                 dataSourceType.setTableId("1");
560                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
561                 DataColumnType dataColumnType = new DataColumnType();
562                 dataColumnType.setChartGroup("test");
563                 dataColumnType.setYAxis("test");
564                 dataColumnType.setColName("[test");
565                 dataColumnType.setColOnChart("LEGEND");
566                 dataColumnType.setDisplayName("chart_total");
567                 dataColumnType.setColId("1");
568                 dataColumnType.setTableId("1");
569                 dataColumnType.setColType("DATE");
570                 dataColumnType.setCrossTabValue("ROW");
571                 dataColumnType.setPdfDisplayWidthInPxls("0.0");
572                 dataColumnType.setVisible(true);
573                 dataColumnType.setCalculated(true);
574                 dataColumnTypeList.add(dataColumnType);
575                 DataColumnType dataColumnType1 = new DataColumnType();
576                 dataColumnType1.setCrossTabValue("COLUMN");
577                 dataColumnType1.setColId("1");
578                 dataColumnType1.setVisible(true);
579                 dataColumnType1.setPdfDisplayWidthInPxls("1.0");
580                 dataColumnTypeList.add(dataColumnType1);
581
582                 DataColumnList dataColumnList = new DataColumnList();
583                 //dataColumnList.dataColumn = dataColumnTypeList;
584                 dataSourceType.setDataColumnList(dataColumnList);
585                 list.add(dataSourceType);
586                 //dataSourceList.dataSource = list;
587                 when(crType.getDataSourceList()).thenReturn(dataSourceList);
588                 when(rr.getReportType()).thenReturn(AppConstants.RT_DASHBOARD);
589
590                 List predefinedValues = new ArrayList<>();
591                 ReportWrapper rw = PowerMockito.mock(ReportWrapper.class);
592                 ReportFormFields reportFormFields = new ReportFormFields(rw, mockedRequest);
593                 FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
594                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
595                                 "rangeEndDateSQL", "multiSelectListSize");
596                 FormField formField1 = new FormField("test", "fieldDisplayName", FormField.FFT_LIST_MULTI, "validationType", false,
597                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
598                                 "rangeEndDateSQL", "multiSelectListSize");
599                 FormField formField2 = new FormField("test", "fieldDisplayName", FormField.FFT_BLANK, "validationType", false,
600                                 "defaultValue", "helpText", predefinedValues, false, "dependsOn", null, null, "rangeStartDateSQL",
601                                 "rangeEndDateSQL", "multiSelectListSize");
602
603                 reportFormFields.add(formField);
604                 reportFormFields.add(formField1);
605                 reportFormFields.add(formField2);
606                 rr.setReportFormFields(null);
607                 rr.setReportFormFields(reportFormFields);
608                 when(rr.getReportFormFields()).thenReturn(reportFormFields);
609                 when(mockedRequest.getSession().getAttribute("remoteDB")).thenReturn("test");
610                 Enumeration<String> enums;
611                 Vector<String> attrs = new Vector<String>();
612                 attrs.add("ff_test");
613                 enums = attrs.elements();
614                 when(rr.getParamKeys()).thenReturn(enums);
615                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
616                 }catch(Exception e) {
617                         e.printStackTrace();
618                 }
619         }
620
621         
622         @Test
623         public void reportRunForCSVDownloadTest() throws Exception {
624                 when(mockedRequest.getParameter("action")).thenReturn("test");
625                 when(mockedRequest.getParameter("r_action")).thenReturn("report.csv.download");
626                 PowerMockito.mockStatic(AppUtils.class);
627                 PowerMockito.mockStatic(Globals.class);
628                 PowerMockito.mockStatic(DbUtils.class);
629
630                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
631                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("");
632                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
633                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
634                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
635                 when(AppUtils.getRequestFlag(mockedRequest, "fromReportLog")).thenReturn(true);
636                 when(rr.getReportType()).thenReturn(AppConstants.RT_LINEAR);
637                 when(rr.getReportDataSQL(Matchers.anyString(), Matchers.anyInt(), Matchers.any())).thenReturn("test");
638                 PowerMockito.mockStatic(ESAPI.class);
639                 Encoder encoder = PowerMockito.mock(Encoder.class);
640                 when(ESAPI.encoder()).thenReturn(encoder);
641                 Codec codec = PowerMockito.mock(Codec.class);
642                 PowerMockito.mockStatic(SecurityCodecUtil.class);
643                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
644                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
645                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
646                 DataSet set = new DataSet();
647                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
648                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
649         }
650         
651         @Test
652         public void reportRunForExcelDownloadTest() throws Exception {
653                 when(mockedRequest.getParameter("action")).thenReturn("test");
654                 when(mockedRequest.getParameter("r_action")).thenReturn("report.download.excel2007");
655                 PowerMockito.mockStatic(AppUtils.class);
656                 PowerMockito.mockStatic(Globals.class);
657                 PowerMockito.mockStatic(DbUtils.class);
658
659                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
660                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("");
661                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_REFRESH)).thenReturn(true);
662                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
663                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
664                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
665                 when(AppUtils.getRequestFlag(mockedRequest, "fromReportLog")).thenReturn(false);
666                 when(rr.getReportType()).thenReturn(AppConstants.RT_LINEAR);
667                 when(rr.getReportDataSQL(Matchers.anyString(), Matchers.anyInt(), Matchers.any())).thenReturn("test");
668                 PowerMockito.mockStatic(ESAPI.class);
669                 Encoder encoder = PowerMockito.mock(Encoder.class);
670                 when(ESAPI.encoder()).thenReturn(encoder);
671                 Codec codec = PowerMockito.mock(Codec.class);
672                 PowerMockito.mockStatic(SecurityCodecUtil.class);
673                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
674                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
675                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
676                 DataSet set = new DataSet();
677                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
678                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
679                 HttpSession session = mockedRequest.getSession();
680                 when(session.getAttributeNames()).thenReturn(enum1);
681                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
682         }
683
684         
685         public ReportRuntime mockReportRunTime1() throws Exception {
686                 PowerMockito.mockStatic(Globals.class);
687                 PowerMockito.mockStatic(DbUtils.class);
688                 when(Globals.getReportUserAccess()).thenReturn("test");
689                 ResultSet rs = PowerMockito.mock(ResultSet.class);
690                 ResultSetMetaData rsmd = PowerMockito.mock(ResultSetMetaData.class);
691                 when(rsmd.getColumnCount()).thenReturn(1);
692                 when(rs.getMetaData()).thenReturn(rsmd);
693                 DataSet datset = PowerMockito.mock(DataSet.class);
694                 // datset = new DataSet(rs);
695                 when(datset.getString(Matchers.anyInt(), Matchers.anyInt())).thenReturn(null);
696                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(datset);
697                 when(Globals.getNewScheduleData()).thenReturn("test");
698                 CustomReportType customReportType = new CustomReportType();
699                 DataSourceList dataSourceList = new DataSourceList();
700                 DataSourceType dataSourceType = new DataSourceType();
701                 dataSourceType.setTableName("test");
702                 dataSourceType.setRefTableId("1");
703                 dataSourceType.setTableId("1");
704                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
705                 DataColumnType dataColumnType = new DataColumnType();
706                 dataColumnType.setChartGroup("test");
707                 dataColumnType.setYAxis("test");
708                 dataColumnType.setColName("[test");
709                 dataColumnType.setColOnChart("LEGEND");
710                 dataColumnType.setDisplayName("chart_total");
711                 dataColumnType.setColId("1");
712                 dataColumnType.setTableId("1");
713                 dataColumnType.setColType("DATE");
714                 dataColumnTypeList.add(dataColumnType);
715                 customReportType.setReportType("test");
716                 customReportType.setReportTitle("test");
717                 customReportType.setDataSourceList(dataSourceList);
718                 ChartAdditionalOptions chartAdditionalOptions = new ChartAdditionalOptions();
719                 chartAdditionalOptions.setLabelAngle("test");
720                 chartAdditionalOptions.setTimeSeriesRender("test");
721                 chartAdditionalOptions.setMultiSeries(false);
722                 customReportType.setChartAdditionalOptions(chartAdditionalOptions);
723                 ReportWrapper reportWrapper = new ReportWrapper(customReportType, "-1", "test", "testId", "test", "test", "1",
724                                 "1", true);
725                 PowerMockito.mockStatic(UserUtils.class);
726                 when(Globals.getRequestParams()).thenReturn("test");
727                 when(Globals.getSessionParams()).thenReturn("test");
728                 when(Globals.getSessionParamsForScheduling()).thenReturn("test");
729                 PowerMockito.mockStatic(AppUtils.class);
730                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test12");
731                 ReportRuntime rr = new ReportRuntime(reportWrapper, mockedRequest);
732                 rr.setLegendLabelAngle("test");
733                 rr.setMultiSeries(false);
734                 rr.setChartType("test");
735                 return rr;
736         }
737
738         
739         @Test
740         public void reportRunTestCase1() throws Exception {
741                 when(mockedRequest.getParameter("action")).thenReturn("test");
742                 PowerMockito.mockStatic(AppUtils.class);
743                 PowerMockito.mockStatic(Globals.class);
744                 PowerMockito.mockStatic(DbUtils.class);
745
746                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
747                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("test");
748                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
749                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
750
751                 PowerMockito.mockStatic(ESAPI.class);
752                 Encoder encoder = PowerMockito.mock(Encoder.class);
753                 when(ESAPI.encoder()).thenReturn(encoder);
754                 Codec codec = PowerMockito.mock(Codec.class);
755                 PowerMockito.mockStatic(SecurityCodecUtil.class);
756                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
757                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
758                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
759                 DataSet set = PowerMockito.mock(DataSet.class);
760                 when(set.isEmpty()).thenReturn(false);
761                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
762                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn(null);
763                 PowerMockito.mockStatic(ReportLoader.class);
764                 when(ReportLoader.loadCustomReportXML(Matchers.anyString())).thenReturn("test");
765                 assertEquals(actionHandler.reportRun(mockedRequest, "test").getClass(), String.class);
766         }
767
768         
769         @Test
770         public void reportDeleteTest() throws Exception {
771                 PowerMockito.mockStatic(ESAPI.class);
772                 PowerMockito.mockStatic(AppUtils.class);
773                 PowerMockito.mockStatic(Globals.class);
774                 PowerMockito.mockStatic(DbUtils.class);
775                 PowerMockito.mockStatic(AlarmSeverityEnum.class);
776                 DataSet set = Mockito.mock(DataSet.class);
777                 Encoder encoder = PowerMockito.mock(Encoder.class);
778                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
779                 ReportDefinition rd = PowerMockito.mock(ReportDefinition.class);
780                 when(ESAPI.encoder()).thenReturn(encoder);
781                 Codec codec = PowerMockito.mock(Codec.class);
782                 PowerMockito.mockStatic(SecurityCodecUtil.class);
783                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
784                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn("1");
785                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("1");
786                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
787                 when(Globals.getReportSecurity()).thenReturn("[rw.getReportID()]");
788                 when(Globals.getReportUserAccess()).thenReturn("[reportID]");
789                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(set);
790                 when(Globals.getDeleteOnlyByOwner()).thenReturn(true);
791                 when(Globals.getLogVariablesInSession()).thenReturn("test");
792                 HttpSession session = Mockito.mock(HttpSession.class);
793                 when(session.getAttribute(Matchers.anyString())).thenReturn(rr);
794                 when(session.getAttribute(Matchers.anyString())).thenReturn(rd);
795                 assertEquals(actionHandler.reportDelete(mockedRequest, "10").getClass(), String.class);
796         }
797         
798         
799         @Test
800         public void reportSearchTest() throws Exception {
801                 PowerMockito.mockStatic(AppUtils.class);        
802                 when(AppUtils.getImgFolderURL()).thenReturn("test");
803                 SearchHandler sh = Mockito.mock(SearchHandler.class);
804                 whenNew(SearchHandler.class).withNoArguments().thenReturn(sh);
805                 ReportSearchResultJSON rsrj = Mockito.mock(ReportSearchResultJSON.class);
806                 when(sh.loadReportSearchResult(mockedRequest)).thenReturn(rsrj);
807                 when(rsrj.getJSONString()).thenReturn("test");
808                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
809                 HttpSession session = mockedRequest.getSession();
810                 when(session.getAttributeNames()).thenReturn(enum1);
811                 actionHandler.reportSearch(mockedRequest, "10");
812         }
813         
814         
815         @Test
816         public void reportChartRunTest() throws Exception {
817                 ChartWebRuntime cwr  = PowerMockito.mock(ChartWebRuntime.class);
818                 whenNew(ChartWebRuntime.class).withNoArguments().thenReturn(cwr);
819                 when(cwr.generateChart(mockedRequest,false)).thenReturn("testReport");
820                 assertEquals("testReport", actionHandler.reportChartRun(mockedRequest, "10"));
821         }
822         
823         @Test
824         public void reportSearchUserTest() throws Exception {
825                 PowerMockito.mockStatic(AppUtils.class);        
826                 when(AppUtils.getImgFolderURL()).thenReturn("test");
827                 SearchHandler sh = Mockito.mock(SearchHandler.class);
828                 whenNew(SearchHandler.class).withNoArguments().thenReturn(sh);
829                 ReportSearchResultJSON rsrj = Mockito.mock(ReportSearchResultJSON.class);
830                 when(sh.loadReportSearchResult(mockedRequest)).thenReturn(rsrj);
831                 when(rsrj.getJSONString()).thenReturn("test");
832                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
833                 HttpSession session = mockedRequest.getSession();
834                 when(session.getAttributeNames()).thenReturn(enum1);
835                 assertEquals("test", actionHandler.reportSearchUser(mockedRequest, "10"));
836         }
837         
838         @Test
839         public void reportSearchPublicTest() throws Exception {
840                 PowerMockito.mockStatic(AppUtils.class);        
841                 when(AppUtils.getImgFolderURL()).thenReturn("test");
842                 SearchHandler sh = Mockito.mock(SearchHandler.class);
843                 whenNew(SearchHandler.class).withNoArguments().thenReturn(sh);
844                 ReportSearchResultJSON rsrj = Mockito.mock(ReportSearchResultJSON.class);
845                 when(sh.loadReportSearchResult(mockedRequest)).thenReturn(rsrj);
846                 when(rsrj.getJSONString()).thenReturn("test");
847                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
848                 HttpSession session = mockedRequest.getSession();
849                 when(session.getAttributeNames()).thenReturn(enum1);
850                 assertEquals("test", actionHandler.reportSearchPublic(mockedRequest, "10"));
851         }
852         
853         @Test
854         public void reportSearchFavoritesTest() throws Exception {
855                 PowerMockito.mockStatic(AppUtils.class);        
856                 when(AppUtils.getImgFolderURL()).thenReturn("test");
857                 SearchHandler sh = Mockito.mock(SearchHandler.class);
858                 whenNew(SearchHandler.class).withNoArguments().thenReturn(sh);
859                 ReportSearchResultJSON rsrj = Mockito.mock(ReportSearchResultJSON.class);
860                 when(sh.loadReportSearchResult(mockedRequest)).thenReturn(rsrj);
861                 when(rsrj.getJSONString()).thenReturn("test");
862                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
863                 HttpSession session = mockedRequest.getSession();
864                 when(session.getAttributeNames()).thenReturn(enum1);
865                 assertEquals("test", actionHandler.reportSearchFavorites(mockedRequest, "10"));
866         }
867         
868         @Test
869         public void reportChartDataRunTest() throws Exception {
870                 ChartWebRuntime cwr  = Mockito.mock(ChartWebRuntime.class);
871                 whenNew(ChartWebRuntime.class).withNoArguments().thenReturn(cwr);
872                 when(cwr.generateChart(mockedRequest)).thenReturn("testReport");
873                 assertEquals("testReport", actionHandler.reportChartDataRun(mockedRequest, "10"));
874         }
875         
876         
877         @Test
878         public void processScheduleDeleteTest() throws Exception {
879                 PowerMockito.mockStatic(AppUtils.class);
880                 PowerMockito.mockStatic(DbUtils.class);
881                 PowerMockito.mockStatic(Globals.class);
882                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_SCHEDULE_ID)).thenReturn("test");
883                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn("test2");
884                 ReportHandler rh  = Mockito.mock(ReportHandler.class);
885                 ReportDefinition rdef  = Mockito.mock(ReportDefinition.class);
886                 whenNew(ReportHandler.class).withNoArguments().thenReturn(rh);
887                 when(rh.loadReportDefinition(mockedRequest, "test2")).thenReturn(rdef);
888                 when(AppUtils.getRequestNvlValue(mockedRequest, "myScheduleRepId")).thenReturn("test3");
889                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
890                 ReportSchedule rs  = Mockito.mock(ReportSchedule.class);
891                 whenNew(ReportSchedule.class).withArguments(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(String.class), Mockito.any(String.class)).thenReturn(rs);
892                 Connection con  = Mockito.mock(Connection.class);
893                 when(DbUtils.startTransaction()).thenReturn(con);
894                 PowerMockito.doNothing().when(rs).deleteScheduleData(con);
895                 PowerMockito.doNothing().when(DbUtils.class, "commitTransaction", new Object[]{con});
896                 PowerMockito.doNothing().when(DbUtils.class, "clearConnection", new Object[]{con});
897                 when(mockedRequest.getParameter("action")).thenReturn("report.download.excel2007");
898
899                 when(AppUtils.getRequestFlag(mockedRequest, "fromDashboard")).thenReturn(false);
900                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_REFRESH)).thenReturn(true);
901                 when(AppUtils.getRequestFlag(mockedRequest, "fromReportLog")).thenReturn(false);
902                 when(AppUtils.getRequestNvlValue(mockedRequest, "pdfAttachmentKey")).thenReturn("test");
903                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
904                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
905
906                 PowerMockito.mockStatic(ESAPI.class);
907                 Encoder encoder = PowerMockito.mock(Encoder.class);
908                 when(ESAPI.encoder()).thenReturn(encoder);
909                 Codec codec = PowerMockito.mock(Codec.class);
910                 PowerMockito.mockStatic(SecurityCodecUtil.class);
911                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
912                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
913                 when(Globals.getDownloadAllEmailSent()).thenReturn("test");
914                 DataSet set = PowerMockito.mock(DataSet.class);
915                 when(set.isEmpty()).thenReturn(false);
916                 when(DbUtils.executeQuery(Matchers.anyString(), Matchers.anyInt())).thenReturn(set);
917                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn(null);
918                 PowerMockito.mockStatic(ReportLoader.class);
919                 when(ReportLoader.loadCustomReportXML(Matchers.anyString())).thenReturn("test");
920                 PowerMockito.doNothing().when(rr).logReportExecutionTime(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(String.class), Mockito.any(String.class));
921                 assertEquals(String.class, actionHandler.processScheduleDelete(mockedRequest, "10").getClass());
922         }
923         
924         @Test
925         public void testFormFieldRun() {
926                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
927                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
928                 ReportJSONRuntime rjr =  Mockito.mock(ReportJSONRuntime.class);
929                 when(rr.createFormFieldJSONRuntime(mockedRequest)).thenReturn(rjr);
930                 assertEquals(String.class, actionHandler.formFieldRun(mockedRequest, "10").getClass());
931         }
932         
933         @Test
934         public void testGetReportData() throws RaptorException {
935                 PowerMockito.mockStatic(ConnectionUtils.class);
936                 PowerMockito.mockStatic(AppUtils.class);
937                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
938                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
939                 ReportFormFields rff = PowerMockito.mock(ReportFormFields.class);
940                 FormField ff = PowerMockito.mock(FormField.class);
941                 SemaphoreType st = PowerMockito.mock(SemaphoreType.class);
942                 FormatList fl = PowerMockito.mock(FormatList.class);
943                 FormatType ft = PowerMockito.mock(FormatType.class);
944                 VisualManager visualManager = PowerMockito.mock(VisualManager.class);
945                 List<FormatType> ftList = new ArrayList<>();
946                 ftList.add(ft);
947                 List<DataColumnType> dctList= new ArrayList<>();
948                 DataColumnType dct = new DataColumnType();
949                 dct.setColId("1");
950                 dct.setDisplayName("testData");
951                 dct.setColType("DATE");
952                 dct.setDependsOnFormField("[testFieldDisplayName]");
953                 dct.setSemaphoreId("testSemaphoreId");
954                 dct.setColFormat("testColFormat");
955                 dct.setDrillDownURL("testDrillDownUrl");
956                 dct.setVisible(true);
957                 dct.setDisplayWidthInPxls("testDisplayWidthInPxls");
958                 dct.setDisplayHeaderAlignment("testDisplayHeaderAlignment");
959                 dctList.add(dct);
960                 when(rr.getAllColumns()).thenReturn(dctList);
961                 when(rr.getReportFormFields()).thenReturn(rff);
962                 when(rr.getDBInfo()).thenReturn("testDB");
963                 when(rr.getReportDefType()).thenReturn(AppConstants.RD_SQL_BASED);
964                 when(rr.getSemaphoreById(Mockito.any())).thenReturn(st);
965                 when(rr.getChildReportFormFields(Mockito.any(HttpServletRequest.class), Mockito.any(String.class))).thenReturn(rff);
966                 when(rr.getVisualManager()).thenReturn(visualManager);
967                 DataSet ds = PowerMockito.mock(DataSet.class);
968                 when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
969                 when(ds.getRowCount()).thenReturn(1);
970                 when(ds.getString(Mockito.any(Integer.class),Mockito.any(Integer.class))).thenReturn("testDataValue");
971                 when(rff.size()).thenReturn(1);
972                 when(rff.getFormField(Mockito.any(Integer.class))).thenReturn(ff);
973                 when(ff.getFieldDisplayName()).thenReturn("testFieldDisplayName");
974                 when(ff.getFieldName()).thenReturn("testFieldName");
975                 when(mockedRequest.getParameter("testFieldName")).thenReturn("testFieldValue");
976                 when(st.getFormatList()).thenReturn(fl);
977                 when(st.getSemaphoreType()).thenReturn(AppConstants.ST_ROW);
978                 when(fl.getFormat()).thenReturn(ftList);
979                 when(ft.getLessThanValue()).thenReturn("10");
980                 when(visualManager.isColumnVisible(Mockito.any(String.class))).thenReturn(true);
981                 when(visualManager.getSortByColId()).thenReturn("1");
982                 assertEquals(ReportData.class, actionHandler.getReportData(rr, mockedRequest, "test", 10).getClass());
983         }
984         
985         @Test(expected = IOException.class)
986         public void testDownloadAll() throws InterruptedException, IOException, Exception {
987                 PowerMockito.mockStatic(AppUtils.class);
988                 PowerMockito.mockStatic(Globals.class);
989                 PowerMockito.mockStatic(DbUtils.class);
990                 PowerMockito.mockStatic(FilenameUtils.class);
991                 PowerMockito.mockStatic(Utils.class);
992                 PowerMockito.mockStatic(ReportRuntime.class);
993                 when(AppUtils.getRequestValue(mockedRequest, "pdfAttachmentKey")).thenReturn("test");
994                 when(AppUtils.getUserEmail(mockedRequest)).thenReturn("test@mail.com");
995                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
996                 when(AppUtils.getRequestValue(mockedRequest, "log_id")).thenReturn("testLogID");
997                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
998                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
999                 when(Globals.getDownloadAllEmailSent()).thenReturn("testEmailSentQuery");
1000                 when(Globals.getDownloadAllGenKey()).thenReturn("testGenerateKeyQuery");
1001                 when(Globals.getShellScriptDir()).thenReturn("./");
1002                 DataSet ds = PowerMockito.mock(DataSet.class);
1003                 when(DbUtils.executeQuery(Mockito.any(String.class), Mockito.eq(1))).thenReturn(ds);
1004                 when(DbUtils.executeQuery(Mockito.any(String.class))).thenReturn(ds);
1005                 when(ds.isEmpty()).thenReturn(false);
1006                 when(ds.getString(0,"user_id")).thenReturn("testUserID");
1007                 when(ds.getString(0,"rep_id")).thenReturn("testReportID");
1008                 when(ds.getRowCount()).thenReturn(1);
1009                 when(ds.getString(0,0)).thenReturn("testScheduleId");
1010                 when(FilenameUtils.normalize(Mockito.any(String.class))).thenReturn("testFile.txt");
1011                 when(Utils.isDownloadFileExists(Mockito.any(String.class))).thenReturn(true);
1012                 when(Utils.getLatestDownloadableFile(Mockito.any(String.class))).thenReturn("testLastDownloadedFile.txt");
1013                 List<DataColumnType> dctList= new ArrayList<>();
1014                 DataColumnType dct = new DataColumnType();
1015                 dct.setDisplayName("testData");
1016                 dctList.add(dct);
1017                 when(rr.getAllColumns()).thenReturn(dctList);
1018                 when(mockedRequest.getParameter("refresh")).thenReturn("N");
1019                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
1020                 when(rr.getReportID()).thenReturn("testReportID");
1021                 actionHandler.downloadAll(mockedRequest, "10");
1022         }
1023         
1024         @Test
1025         public void testRunSQLPopup() throws ReportSQLException {
1026                 PowerMockito.mockStatic(AppUtils.class);
1027                 PowerMockito.mockStatic(Globals.class);
1028                 PowerMockito.mockStatic(Utils.class);
1029                 PowerMockito.mockStatic(ConnectionUtils.class);
1030                 when(AppUtils.getRequestNvlValue(mockedRequest, AppConstants.RI_FORMATTED_SQL)).thenReturn("SELECT * FROM TEST");
1031                 when(AppUtils.getRequestNvlValue(mockedRequest,AppConstants.RI_CHK_FIELD_SQL)).thenReturn("N");
1032                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1033                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1034                 FormFieldType formFieldType = new FormFieldType();
1035                 formFieldType.setFieldId("test");
1036                 formFieldType.setColId("1");
1037                 formFieldType.setFieldName("test");
1038                 formFieldType.setFieldType("type");
1039                 formFieldType.setValidationType("validation");
1040                 formFieldType.setMandatory("Y");
1041                 formFieldType.setDefaultValue("test");
1042                 formFieldType.setGroupFormField(true);
1043                 FormFieldList formFieldList = PowerMockito.mock(FormFieldList.class);
1044                 formFieldList.getFormField().add(formFieldType);
1045                 when(rdef.getFormFieldList()).thenReturn(formFieldList);
1046                 when(rdef.getFormFieldDisplayName(formFieldType)).thenReturn("testField");
1047                 when(mockedRequest.getParameter("remoteDbPrefix")).thenReturn("testDB");
1048                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
1049         when(Utils.replaceInString(Mockito.any(String.class),Mockito.any(String.class),Mockito.any(String.class))).thenReturn("testString");
1050         when(Globals.getRequestParams()).thenReturn("test");
1051         when(Globals.getSessionParams()).thenReturn("test");
1052         DataSet ds = PowerMockito.mock(DataSet.class);
1053                 when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class), Mockito.eq(true))).thenReturn(ds);
1054                 when(ds.getRowCount()).thenReturn(1);
1055                 when(ds.getString(Mockito.any(Integer.class),Mockito.any(Integer.class))).thenReturn("testDataValue");
1056                 PowerMockito.mockStatic(ESAPI.class);
1057                 Encoder encoder = PowerMockito.mock(Encoder.class);
1058                 when(ESAPI.encoder()).thenReturn(encoder);
1059                 Codec codec = PowerMockito.mock(Codec.class);
1060                 PowerMockito.mockStatic(SecurityCodecUtil.class);
1061                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
1062                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
1063                 actionHandler.testRunSQLPopup(mockedRequest, "10");
1064         }
1065         
1066         @Test
1067         public void testSchedCondPopup() throws RaptorException {
1068                 PowerMockito.mockStatic(AppUtils.class);
1069                 PowerMockito.mockStatic(Globals.class);
1070                 PowerMockito.mockStatic(ConnectionUtils.class);
1071                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1072                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1073                 when(AppUtils.getRequestNvlValue(mockedRequest, AppConstants.RI_FORMATTED_SQL)).thenReturn("testSQL");
1074                 when(Globals.getTestSchedCondPopup()).thenReturn("testQuery");
1075                 when(mockedRequest.getParameter("remoteDbPrefix")).thenReturn("testDB");
1076                 DataSet ds = PowerMockito.mock(DataSet.class);
1077                 when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
1078                 when(ds.getRowCount()).thenReturn(1);
1079                 actionHandler.testSchedCondPopup(mockedRequest, "10");
1080         }       
1081         
1082         @Test
1083         public void testReportShowSQLPopup() throws RaptorException {
1084                 PowerMockito.mockStatic(AppUtils.class);
1085                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1086                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1087                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
1088                 when(rdef.generateSQL(Mockito.any(String.class),Mockito.any(HttpServletRequest.class))).thenReturn("testReportSQL");
1089                 actionHandler.reportShowSQLPopup(mockedRequest, "10");
1090         }
1091         
1092         
1093         @Test
1094         public void testReportFilterDataPopup() throws RaptorException {
1095                 PowerMockito.mockStatic(AppUtils.class);
1096                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1097                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1098                 when(AppUtils.getRequestNvlValue(mockedRequest, AppConstants.RI_COLUMN_ID)).thenReturn("testColID");
1099                 when(rdef.getDBInfo()).thenReturn(null);
1100                 when(mockedRequest.getSession().getAttribute("remoteDB")).thenReturn("testDB");
1101                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_RESET_PARAMS)).thenReturn(false);
1102                 IdNameColLookup lookUp = Mockito.mock(IdNameColLookup.class);
1103                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_COLUMN_LOOKUP)).thenReturn(lookUp);
1104                 when(lookUp.getColId()).thenReturn("testColID");
1105                 when(AppUtils.getRequestNvlValue(mockedRequest, AppConstants.RI_SEARCH_STRING)).thenReturn("testSearchStr");
1106                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_CONTAIN_FLAG)).thenReturn(true);
1107                 actionHandler.reportFilterDataPopup(mockedRequest, "10");
1108         }
1109         
1110         @Test
1111         public void testReportImportSave() throws Exception {
1112                 PowerMockito.mockStatic(AppUtils.class);
1113                 String str = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><CustomReportType xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xsi:type=\"xs:string\"><reportName>name</reportName><reportDescr>desc</reportDescr><chartType>type</chartType><showChartTitle>false</showChartTitle><public>false</public><createId>id</createId><pageNav>false</pageNav></CustomReportType>";
1114                 when(AppUtils.getRequestValue(mockedRequest, "reportXML")).thenReturn(str);
1115                 ReportHandler rh = Mockito.mock(ReportHandler.class);
1116                 ReportDefinition rdef = Mockito.mock(ReportDefinition.class);
1117                 whenNew(ReportHandler.class).withNoArguments().thenReturn(rh);
1118                 when(rh.createReportDefinition(mockedRequest, "-1", str)).thenReturn(rdef);
1119                 PowerMockito.doNothing().when(rdef).updateReportDefType();
1120                 PowerMockito.doNothing().when(rdef).generateWizardSequence(mockedRequest);
1121                 when(rdef.getReportName()).thenReturn("test");
1122                 PowerMockito.doNothing().when(rdef).setReportName("Import: test");
1123                 PowerMockito.doNothing().when(rdef).clearAllDrillDowns();
1124                 actionHandler.reportImportSave(mockedRequest, "10");
1125         }
1126         
1127         @Test
1128         public void testProcessSchedule() throws RaptorException {
1129                 PowerMockito.mockStatic(AppUtils.class);
1130                 PowerMockito.mockStatic(Globals.class);
1131                 PowerMockito.mockStatic(ReportLoader.class);
1132                 PowerMockito.mockStatic(DbUtils.class);
1133                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_SCHEDULE)).thenReturn("test"); 
1134                 when(AppUtils.getRequestNvlValue(mockedRequest, AppConstants.RI_ACTION)).thenReturn("test");
1135                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_SCHEDULE_ID)).thenReturn("");
1136                 ReportSchedule rs = Mockito.mock(ReportSchedule.class);
1137                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_SCHEDULE)).thenReturn(rs);
1138                 when(rs.getScheduleID()).thenReturn("testSchecduleID");
1139                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn("testReportID");
1140                 when(AppUtils.isAdminUser(mockedRequest)).thenReturn(true);
1141                 when(ReportLoader.doesUserCanScheduleReport(Mockito.any(HttpServletRequest.class), Mockito.any(String.class))).thenReturn(true);
1142                 when(rs.getFormFields()).thenReturn("testField");
1143                 when(Globals.getSessionParamsForScheduling()).thenReturn("test");
1144                 Connection con = Mockito.mock(Connection.class);
1145                 when(DbUtils.startTransaction()).thenReturn(con);
1146                 actionHandler.processSchedule(mockedRequest, "10");
1147         }
1148         
1149         @Test(expected=RuntimeException.class)
1150         public void testProcessSchedule_WhenReportScheduleIsNull() throws RaptorException {
1151                 PowerMockito.mockStatic(AppUtils.class);
1152                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_SCHEDULE)).thenReturn(null); 
1153                 when(AppUtils.getRequestValue(mockedRequest, AppConstants.RI_REPORT_ID)).thenReturn("");
1154                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1155                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1156                 actionHandler.processSchedule(mockedRequest, "10");
1157         }
1158         
1159         @Test
1160         public void testReportValuesMapDefPopup() throws RaptorException {
1161                 PowerMockito.mockStatic(AppUtils.class);
1162                 PowerMockito.mockStatic(Globals.class);
1163                 PowerMockito.mockStatic(ConnectionUtils.class);
1164                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1165                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1166                 when(AppUtils.getRequestNvlValue(mockedRequest, "colName")).thenReturn("testCol");
1167                 when(AppUtils.getRequestNvlValue(mockedRequest, "displayName")).thenReturn("testDisplayName");
1168                 when(AppUtils.getRequestNvlValue(mockedRequest, "displayFormat")).thenReturn("testDisplayFormat");
1169                 when(AppUtils.getRequestNvlValue(mockedRequest, "tableId")).thenReturn("testTableId");
1170                 when(mockedRequest.getSession().getAttribute("remoteDB")).thenReturn("testDB");
1171                 when(Globals.getReportValuesMapDefA()).thenReturn("testA");
1172                 when(Globals.getReportValuesMapDefB()).thenReturn("testB"); 
1173                 when(Globals.getReportValuesMapDefC()).thenReturn("testC");
1174                 when(Globals.getReportValuesMapDefD()).thenReturn("testD"); 
1175                 when(Globals.getDefaultPageSize()).thenReturn(10);
1176                 DataSourceType ds = Mockito.mock(DataSourceType.class);
1177                 when(ds.getTableName()).thenReturn("testTable");
1178                 when(rdef.getTableById(Mockito.any(String.class))).thenReturn(ds);
1179                 DataSet data =  Mockito.mock(DataSet.class);
1180                 when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(data);
1181                 actionHandler.reportValuesMapDefPopup(mockedRequest, "10");
1182         }
1183         
1184         @Test
1185         public void testReportFormFieldPopup() {
1186                 PowerMockito.mockStatic(AppUtils.class);
1187                 ReportRuntime rr = PowerMockito.mock(ReportRuntime.class);
1188                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
1189                 FormField formField = new FormField("test", "fieldDisplayName", FormField.FFT_COMBO_BOX, "validationType", false,
1190                                 "defaultValue", "helpText", new ArrayList<>(), false, "dependsOn", null, null, "rangeStartDateSQL",
1191                                 "rangeEndDateSQL", "multiSelectListSize");
1192                 when(rr.getFormField(Mockito.any(String.class))).thenReturn(formField);
1193                 ReportFormFields rff = PowerMockito.mock(ReportFormFields.class);
1194                 when(rr.getReportFormFields()).thenReturn(rff);
1195                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
1196                 IdNameList lookup = Mockito.mock(IdNameList.class);
1197                 when(AppUtils.getRequestFlag(mockedRequest, AppConstants.RI_TEXTFIELD_POP)).thenReturn(true);
1198                 actionHandler.reportFormFieldPopup(mockedRequest, "10");
1199         }
1200         
1201         @Test
1202         public void testReportCreate() throws Exception {
1203                 PowerMockito.mockStatic(ReportDefinition.class);
1204                 PowerMockito.mockStatic(DataCache.class);
1205                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
1206                 HttpSession session = mockedRequest.getSession();
1207                 when(session.getAttributeNames()).thenReturn(enum1);
1208                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1209                 when(ReportDefinition.createBlank(mockedRequest)).thenReturn(rdef);
1210                 PowerMockito.doNothing().when(DataCache.class, "refreshReportTableSources", new Object[]{});
1211                 actionHandler.reportCreate(mockedRequest, "10");
1212         }
1213         
1214         @Test
1215         public void testRefreshCache() throws Exception {
1216                 PowerMockito.mockStatic(Globals.class);
1217                 PowerMockito.mockStatic(DataCache.class);
1218                 Enumeration<String> enum1 = Mockito.mock(Enumeration.class);
1219                 HttpSession session = mockedRequest.getSession();
1220                 when(session.getAttributeNames()).thenReturn(enum1);
1221                 PowerMockito.doNothing().when(DataCache.class, "refreshAll", new Object[]{});
1222                 IAppUtils iau = Mockito.mock(IAppUtils.class);
1223         when(Globals.getAppUtils()).thenReturn(iau);
1224         PowerMockito.doNothing().when(iau).resetUserCache();
1225                 actionHandler.refreshCache(mockedRequest, "10");
1226         }
1227         
1228         @Test
1229         public void testProcessScheduleReportListd() throws Exception {
1230                 PowerMockito.mockStatic(AppUtils.class);
1231                 PowerMockito.mockStatic(ReportLoader.class);
1232                 when(AppUtils.getRequestNvlValue(mockedRequest, "schedule_reports")).thenReturn("reportID");
1233                 when(AppUtils.isAdminUser(mockedRequest)).thenReturn(true);
1234                 when(ReportLoader.doesUserCanScheduleReport(mockedRequest, null)).thenReturn(true);
1235                 ReportDefinition rdef = PowerMockito.mock(ReportDefinition.class);
1236                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_DEFINITION)).thenReturn(rdef);
1237                 when(rdef.getReportID()).thenReturn("reportID");
1238                 actionHandler.processScheduleReportList(mockedRequest, "10");
1239         }
1240         
1241         
1242         @Test
1243         public void testGetQuickLinksJSON() throws Exception {
1244                 PowerMockito.mockStatic(SecurityCodecUtil.class);
1245                 PowerMockito.mockStatic(ESAPI.class);
1246                 PowerMockito.mockStatic(ReportLoader.class);
1247                 Encoder encoder = PowerMockito.mock(Encoder.class);
1248                 when(ESAPI.encoder()).thenReturn(encoder);
1249                 Codec codec = PowerMockito.mock(Codec.class);
1250                 PowerMockito.mockStatic(SecurityCodecUtil.class);
1251                 when(SecurityCodecUtil.getCodec()).thenReturn(codec);
1252                 when(encoder.encodeForSQL(Matchers.any(Codec.class), Matchers.anyString())).thenReturn("select *");
1253                 ArrayList<QuickLink> qList = new ArrayList<QuickLink>();
1254                 qList.add(new QuickLink());
1255                 when(ReportLoader.getQuickLinksJSON(Mockito.any(HttpServletRequest.class), Mockito.any(String.class), Mockito.eq(true))).thenReturn(qList);
1256                 actionHandler.getQuickLinksJSON(mockedRequest, "10");
1257         }
1258         
1259 }