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