c94dd41a5e0b6b0f93416e01542353dab03e2ca1
[portal/sdk.git] /
1 /*
2  * ============LICENSE_START==========================================
3  * ONAP Portal SDK
4  * ===================================================================
5  * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  * 
37  */
38 package org.onap.portalsdk.analytics.xmlobj;
39
40 import static org.mockito.Mockito.mock;
41 import static org.mockito.Mockito.when;
42
43 import java.awt.Color;
44 import java.awt.Font;
45 import java.io.File;
46 import java.sql.Connection;
47 import java.sql.ResultSet;
48 import java.sql.ResultSetMetaData;
49 import java.sql.Statement;
50 import java.util.ArrayList;
51 import java.util.HashMap;
52 import java.util.List;
53 import java.util.TreeMap;
54
55 import javax.servlet.ServletContext;
56 import javax.servlet.http.HttpServletRequest;
57 import javax.servlet.http.HttpServletResponse;
58
59 import org.junit.Before;
60 import org.junit.Ignore;
61 import org.junit.Test;
62 import org.junit.runner.RunWith;
63 import org.mockito.InjectMocks;
64 import org.mockito.Matchers;
65 import org.mockito.Mockito;
66 import org.mockito.MockitoAnnotations;
67 import org.onap.portalsdk.analytics.model.DataCache;
68 import org.onap.portalsdk.analytics.model.ReportLoader;
69 import org.onap.portalsdk.analytics.model.base.ReportWrapper;
70 import org.onap.portalsdk.analytics.model.definition.ReportDefinition;
71 import org.onap.portalsdk.analytics.model.pdf.PdfReportHandler;
72 import org.onap.portalsdk.analytics.model.runtime.ReportParamValues;
73 import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
74 import org.onap.portalsdk.analytics.system.AppUtils;
75 import org.onap.portalsdk.analytics.system.ConnectionUtils;
76 import org.onap.portalsdk.analytics.system.DbUtils;
77 import org.onap.portalsdk.analytics.system.Globals;
78 import org.onap.portalsdk.analytics.util.AppConstants;
79 import org.onap.portalsdk.analytics.util.DataSet;
80 import org.onap.portalsdk.analytics.util.HtmlStripper;
81 import org.onap.portalsdk.analytics.util.Utils;
82 import org.onap.portalsdk.analytics.util.XSSFilter;
83 import org.onap.portalsdk.analytics.view.ColumnHeader;
84 import org.onap.portalsdk.analytics.view.ColumnHeaderRow;
85 import org.onap.portalsdk.analytics.view.DataRow;
86 import org.onap.portalsdk.analytics.view.ReportColumnHeaderRows;
87 import org.onap.portalsdk.analytics.view.ReportData;
88 import org.onap.portalsdk.analytics.view.ReportDataRows;
89 import org.onap.portalsdk.analytics.view.ReportRowHeaderCols;
90 import org.onap.portalsdk.analytics.view.RowHeader;
91 import org.onap.portalsdk.analytics.view.RowHeaderCol;
92 import org.onap.portalsdk.core.util.SecurityCodecUtil;
93 import org.onap.portalsdk.core.web.support.UserUtils;
94 import org.owasp.esapi.ESAPI;
95 import org.owasp.esapi.codecs.Codec;
96 import org.powermock.api.mockito.PowerMockito;
97 import org.powermock.core.classloader.annotations.PrepareForTest;
98 import org.powermock.modules.junit4.PowerMockRunner;
99
100 import com.lowagie.text.Document;
101 import com.lowagie.text.Image;
102
103 @RunWith(PowerMockRunner.class)
104 @PrepareForTest({ PdfReportHandler.class, PdfReportHandlerTest.class, AppConstants.class, Globals.class, AppUtils.class, ReportWrapper.class, DataCache.class,
105         DbUtils.class, DataSet.class, Font.class, ReportLoader.class, ReportRuntime.class, Utils.class, ESAPI.class, Codec.class,
106         SecurityCodecUtil.class, ConnectionUtils.class, XSSFilter.class, ReportDefinition.class, UserUtils.class})
107 public class PdfReportHandlerTest {
108
109         @InjectMocks
110         PdfReportHandler pdfReportHandler;
111         
112         @Before
113     public void init() throws Exception {               
114                 PowerMockito.mockStatic(Globals.class);
115                 PowerMockito.mockStatic(AppUtils.class);
116                 PowerMockito.mockStatic(DbUtils.class);                         
117                 MockitoAnnotations.initMocks(this);
118         }
119         
120         MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
121         HttpServletRequest mockedRequest = mockitoTestSuite.getMockedRequest();
122         HttpServletResponse mockedResponse = mockitoTestSuite.getMockedResponse();
123         
124         @Ignore 
125         @SuppressWarnings({ "rawtypes", "unchecked" })
126         @Test
127         public void createPdfFileContentTest() throws Exception {
128                 Document doc =  mock(Document.class);
129                 PowerMockito.whenNew(Document.class).withNoArguments().thenReturn(doc);
130                 PowerMockito.when(doc.newPage()).thenReturn(true);
131                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
132                 ReportRuntime rr = mock(ReportRuntime.class);
133                 ReportData rd = mock(ReportData.class);
134                 when(Globals.isCoverPageNeeded()).thenReturn(true);
135                 when(Globals.getSessionInfoForTheCoverPage()).thenReturn("test,test1");
136                 when(AppUtils.getRequestNvlValue(mockedRequest, "test1")).thenReturn("test1");
137                 when(rr.isPDFCoverPage()).thenReturn(true);
138                 when(rr.getReportID()).thenReturn("test");
139                 when(rr.getPDFOrientation()).thenReturn("portait");
140                 when(mockedRequest.getSession().getAttribute("report_runtime")).thenReturn(rr);
141                 when(mockedRequest.getSession().getAttribute("dashboard_report_id")).thenReturn("test");
142                 ServletContext servConxt = mock(ServletContext.class);
143                 when(mockedRequest.getSession().getServletContext()).thenReturn(servConxt);
144                 when(servConxt.getRealPath(File.separator)).thenReturn("testpath");
145                 when(rr.getChartType()).thenReturn("test");
146                 when(rr.getDisplayChart()).thenReturn(true);
147                 ArrayList paramNamePDFValues = new ArrayList();
148                 paramNamePDFValues.add("test1");
149                 paramNamePDFValues.add("test2");
150                 when(rr.getParamNameValuePairsforPDFExcel(mockedRequest, 2)).thenReturn(paramNamePDFValues);
151                 when(rr.getFormFieldComments(mockedRequest)).thenReturn("test");
152                 TreeMap values = new TreeMap<>();
153                 values.put("test", rr);
154                 TreeMap values2 = new TreeMap<>();
155                 values2.put("test3", rd);
156                 TreeMap values3 = new TreeMap<>();
157                 values3.put("test4", "c");
158                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP)).thenReturn(values);
159                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP)).thenReturn(values2);
160                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP)).thenReturn(values3);
161                 pdfReportHandler.createPdfFileContent(mockedRequest, mockedResponse, 3);
162         }
163         
164         @Ignore
165         @SuppressWarnings({ "rawtypes", "unchecked" })
166         @Test
167         public void createPdfFileContentIfNotDashBoardTest() throws Exception {
168                 PowerMockito.mockStatic(Color.class);
169                 PowerMockito.mockStatic(AppConstants.class);
170                 PowerMockito.mockStatic(Globals.class);
171                 PowerMockito.mockStatic(DbUtils.class);
172                 PowerMockito.mockStatic(ConnectionUtils.class);
173
174                 ReportRuntime rr = mock(ReportRuntime.class);
175                 ReportData rd = mock(ReportData.class);
176                 ReportDataRows rdr =  new ReportDataRows();
177                 CustomReportType crType = mock(CustomReportType.class); 
178                 Connection conn = mock(Connection.class);
179                 Statement st = mock(Statement.class);
180                 ResultSet resSet = mock(ResultSet.class);
181                 ResultSetMetaData resSetMD = mock(ResultSetMetaData.class);
182                 DataRow dr = new DataRow();
183                 rdr.add(dr);
184                 rd.reportDataRows = rdr;
185                 when(rr.getCustomReport()).thenReturn(crType);
186                 when(rr.getReportDefType()).thenReturn(AppConstants.RD_SQL_BASED);
187                 when(crType.getReportType()).thenReturn("Linear");
188                 when(Globals.getDataTableHeaderFontColor()).thenReturn("black");
189
190                 DataSourceList dataSourceList = new DataSourceList();
191
192                 List<DataSourceType> list = new ArrayList<>();
193                 DataSourceType dataSourceType = new DataSourceType();
194                 dataSourceType.setTableName("test");
195                 dataSourceType.setRefTableId("1");
196                 dataSourceType.setTableId("1");
197                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
198                 DataColumnType dataColumnType = new DataColumnType();
199                 dataColumnType.setChartGroup("test");
200                 dataColumnType.setYAxis("test");
201                 dataColumnType.setColName("[test");
202                 dataColumnType.setColOnChart("LEGEND");
203                 dataColumnType.setDisplayName("chart_total");
204                 dataColumnType.setColId("1");
205                 dataColumnType.setTableId("1");
206                 dataColumnType.setColType("DATE");
207                 dataColumnType.setCrossTabValue("ROW");
208                 dataColumnType.setPdfDisplayWidthInPxls("0.0");
209                 dataColumnType.setVisible(true);
210                 dataColumnType.setCalculated(true);
211                 dataColumnTypeList.add(dataColumnType);
212                 DataColumnType dataColumnType1 = new DataColumnType();
213                 dataColumnType1.setCrossTabValue("COLUMN");
214                 dataColumnType1.setColId("1");
215                 dataColumnType1.setVisible(true);
216                 dataColumnType1.setPdfDisplayWidthInPxls("1.0");
217                 dataColumnTypeList.add(dataColumnType1);
218
219                 DataColumnList dataColumnList = new DataColumnList();
220                 dataColumnList.dataColumn = dataColumnTypeList;
221                 dataSourceType.setDataColumnList(dataColumnList);
222                 list.add(dataSourceType);
223                 dataSourceList.dataSource = list;
224                 when(crType.getDataSourceList()).thenReturn(dataSourceList);
225                 
226                 when(ConnectionUtils.getConnection(Matchers.anyString())).thenReturn(conn);
227                 when(conn.createStatement()).thenReturn(st);
228                 when( st.executeQuery(Matchers.anyString())).thenReturn(resSet);
229                 when(resSet.getMetaData()).thenReturn(resSetMD);
230                 
231                 when(mockedRequest.getParameter("parent")).thenReturn("parent_test");
232                 when(mockedRequest.getSession().getAttribute("parent_test_rr")).thenReturn(rr);
233                 when(mockedRequest.getSession().getAttribute("parent_test_rd")).thenReturn(rd);
234
235                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
236                 when(mockedRequest.getSession().getAttribute(AppConstants.RI_REPORT_DATA)).thenReturn(rd);
237                 when(mockedRequest.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE)).thenReturn("test_sql_whole");
238                 when(rd.getTotalColumnCount()).thenReturn(2);
239                 ReportColumnHeaderRows reportColumnHeaderRows = new ReportColumnHeaderRows();
240                 ColumnHeaderRow columnHeaderRow = new ColumnHeaderRow();
241                 ColumnHeader columnHeader = new ColumnHeader();
242                 columnHeaderRow.add(columnHeader);
243                 reportColumnHeaderRows.add(columnHeaderRow);
244                 rd.reportColumnHeaderRows = reportColumnHeaderRows;
245                 
246                 ReportRowHeaderCols reportRowHeaderCols = new ReportRowHeaderCols();
247                 RowHeaderCol rowHeaderCol = new RowHeaderCol();
248                 RowHeader rowHeader = new RowHeader();
249                 rowHeader.setRowTitle("test");
250                 rowHeaderCol.add(rowHeader);
251                 RowHeaderCol rowHeaderCol1 = new RowHeaderCol();
252                 RowHeader rowHeader1 = new RowHeader();
253                 rowHeader1.setRowTitle("test1");
254                 rowHeaderCol1.add(rowHeader1);
255                 reportRowHeaderCols.addRowHeaderCol(rowHeaderCol);
256                 reportRowHeaderCols.addRowHeaderCol(rowHeaderCol1);
257                 rd.reportRowHeaderCols = reportRowHeaderCols;
258
259                 when(mockedRequest.getParameter(AppConstants.RI_ACTION)).thenReturn("report.edit");
260                 when(mockedRequest.getParameter(AppConstants.RI_WIZARD_ACTION)).thenReturn("test");
261                 when(mockedRequest.getSession().getAttribute(
262                                 AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
263                 Mockito.when(Globals.getNewScheduleData()).thenReturn("test");
264                 DataSet datset = PowerMockito.mock(DataSet.class);
265                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(datset);
266                 when(datset.getString(Matchers.anyInt(), Matchers.anyInt())).thenReturn(null);
267                 
268                 Document doc =  mock(Document.class);
269                 PowerMockito.whenNew(Document.class).withNoArguments().thenReturn(doc);
270                 PowerMockito.when(doc.newPage()).thenReturn(true);
271                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
272                 when(Globals.isCoverPageNeeded()).thenReturn(true);
273                 when(Globals.getSessionInfoForTheCoverPage()).thenReturn("test,test1");
274                 when(AppUtils.getRequestNvlValue(mockedRequest, "test1")).thenReturn("test1");
275                 when(rr.isPDFCoverPage()).thenReturn(true);
276                 when(rr.getReportID()).thenReturn("test");
277                 when(rr.getPDFOrientation()).thenReturn("portait");
278                 when(rr.getReportType()).thenReturn(AppConstants.RT_LINEAR);
279                 ServletContext servConxt = mock(ServletContext.class);
280                 when(mockedRequest.getSession().getServletContext()).thenReturn(servConxt);
281                 when(servConxt.getRealPath(File.separator)).thenReturn("testpath");
282                 when(rr.getChartType()).thenReturn("test");
283                 when(rr.getDisplayChart()).thenReturn(true);
284                 ArrayList paramNamePDFValues = new ArrayList();
285                 paramNamePDFValues.add("test1");
286                 paramNamePDFValues.add("test2");
287                 when(rr.getParamNameValuePairsforPDFExcel(mockedRequest, 1)).thenReturn(paramNamePDFValues);
288                 when(rr.getFormFieldComments(mockedRequest)).thenReturn("test");
289                 TreeMap values = new TreeMap<>();
290                 values.put("test", rr);
291                 TreeMap values2 = new TreeMap<>();
292                 values2.put("test3", rd);
293                 TreeMap values3 = new TreeMap<>();
294                 values3.put("test4", "c");
295                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP)).thenReturn(values);
296                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP)).thenReturn(values2);
297                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP)).thenReturn(values3);
298                 pdfReportHandler.createPdfFileContent(mockedRequest, mockedResponse, 3);
299         }
300         
301         @Ignore
302         @SuppressWarnings({ "rawtypes", "unchecked" })
303         @Test
304         public void createPdfFileContentIfNotDashBoardAndTypeTwoTest() throws Exception {
305                 PowerMockito.mockStatic(Color.class);
306                 PowerMockito.mockStatic(AppConstants.class);
307                 PowerMockito.mockStatic(Globals.class);
308                 PowerMockito.mockStatic(DbUtils.class);
309                 PowerMockito.mockStatic(Font.class);
310                 PowerMockito.mockStatic(ConnectionUtils.class);
311                 HtmlStripper htmlStr = mock(HtmlStripper.class);
312                 PowerMockito.whenNew(HtmlStripper.class).withNoArguments().thenReturn(htmlStr);
313                 when(htmlStr.stripHtml(Matchers.anyString())).thenReturn("test");
314                 ReportRuntime rr = mock(ReportRuntime.class);
315                 ReportData rd = mock(ReportData.class);
316                 ReportDataRows rdr =  new ReportDataRows();
317                 CustomReportType crType = mock(CustomReportType.class); 
318                 Connection conn = mock(Connection.class);
319                 Statement st = mock(Statement.class);
320                 ResultSet resSet = mock(ResultSet.class);
321                 ResultSetMetaData resSetMD = mock(ResultSetMetaData.class);
322                 DataRow dr = new DataRow();
323                 rdr.add(dr);
324                 rd.reportDataRows = rdr;
325                 when(rr.getCustomReport()).thenReturn(crType);
326                 when(rr.getReportDefType()).thenReturn(AppConstants.RD_SQL_BASED);
327                 when(crType.getReportType()).thenReturn("Linear");
328                 when(Globals.getDataTableHeaderFontColor()).thenReturn("black");
329
330                 DataSourceList dataSourceList = new DataSourceList();
331
332                 List<DataSourceType> list = new ArrayList<>();
333                 DataSourceType dataSourceType = new DataSourceType();
334                 dataSourceType.setTableName("test");
335                 dataSourceType.setRefTableId("1");
336                 dataSourceType.setTableId("1");
337                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
338                 DataColumnType dataColumnType = new DataColumnType();
339                 dataColumnType.setChartGroup("test");
340                 dataColumnType.setYAxis("test");
341                 dataColumnType.setColName("[test");
342                 dataColumnType.setColOnChart("LEGEND");
343                 dataColumnType.setDisplayName("chart_total");
344                 dataColumnType.setColId("1");
345                 dataColumnType.setTableId("1");
346                 dataColumnType.setColType("DATE");
347                 dataColumnType.setCrossTabValue("ROW");
348                 dataColumnType.setPdfDisplayWidthInPxls("0.0");
349                 dataColumnType.setVisible(true);
350                 dataColumnType.setCalculated(true);
351                 dataColumnTypeList.add(dataColumnType);
352                 DataColumnType dataColumnType1 = new DataColumnType();
353                 dataColumnType1.setCrossTabValue("COLUMN");
354                 dataColumnType1.setColId("1");
355                 dataColumnType1.setVisible(true);
356                 dataColumnType1.setPdfDisplayWidthInPxls("1.0");
357                 dataColumnTypeList.add(dataColumnType1);
358
359                 DataColumnList dataColumnList = new DataColumnList();
360                 dataColumnList.dataColumn = dataColumnTypeList;
361                 dataSourceType.setDataColumnList(dataColumnList);
362                 list.add(dataSourceType);
363                 dataSourceList.dataSource = list;
364                 when(crType.getDataSourceList()).thenReturn(dataSourceList);
365                 
366                 when(ConnectionUtils.getConnection(Matchers.anyString())).thenReturn(conn);
367                 when(conn.createStatement()).thenReturn(st);
368                 when( st.executeQuery(Matchers.anyString())).thenReturn(resSet);
369                 when(resSet.getMetaData()).thenReturn(resSetMD);
370                 
371                 when(mockedRequest.getParameter("parent")).thenReturn("parent_test");
372                 when(mockedRequest.getSession().getAttribute("parent_test_rr")).thenReturn(rr);
373                 when(mockedRequest.getSession().getAttribute("parent_test_rd")).thenReturn(rd);
374
375                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
376                 when(mockedRequest.getSession().getAttribute(AppConstants.RI_REPORT_DATA)).thenReturn(rd);
377                 when(mockedRequest.getAttribute(AppConstants.RI_REPORT_SQL_WHOLE)).thenReturn("test_sql_whole");
378                 when(rd.getTotalColumnCount()).thenReturn(2);
379                 ReportColumnHeaderRows reportColumnHeaderRows = new ReportColumnHeaderRows();
380                 ColumnHeaderRow columnHeaderRow = new ColumnHeaderRow();
381                 ColumnHeader columnHeader = new ColumnHeader();
382                 columnHeaderRow.add(columnHeader);
383                 reportColumnHeaderRows.add(columnHeaderRow);
384                 rd.reportColumnHeaderRows = reportColumnHeaderRows;
385                 
386                 ReportRowHeaderCols reportRowHeaderCols = new ReportRowHeaderCols();
387                 rd.reportRowHeaderCols = reportRowHeaderCols;
388
389                 when(mockedRequest.getParameter(AppConstants.RI_ACTION)).thenReturn("report.edit");
390                 when(mockedRequest.getParameter(AppConstants.RI_WIZARD_ACTION)).thenReturn("test");
391                 when(mockedRequest.getSession().getAttribute(
392                                 AppConstants.SI_REPORT_RUNTIME)).thenReturn(rr);
393                 Mockito.when(Globals.getNewScheduleData()).thenReturn("test");
394                 DataSet datset = PowerMockito.mock(DataSet.class);
395                 when(DbUtils.executeQuery(Matchers.anyString())).thenReturn(datset);
396                 when(datset.getString(Matchers.anyInt(), Matchers.anyInt())).thenReturn(null);
397                 
398                 Document doc =  mock(Document.class);
399                 PowerMockito.whenNew(Document.class).withNoArguments().thenReturn(doc);
400                 PowerMockito.when(doc.newPage()).thenReturn(true);
401                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
402                 when(Globals.isCoverPageNeeded()).thenReturn(true);
403                 when(Globals.getSessionInfoForTheCoverPage()).thenReturn("test,test1");
404                 when(AppUtils.getRequestNvlValue(mockedRequest, "test1")).thenReturn("test1");
405                 when(rr.isPDFCoverPage()).thenReturn(true);
406                 when(rr.getReportID()).thenReturn("test");
407                 when(rr.getPDFOrientation()).thenReturn("portait");
408                 when(rr.getReportType()).thenReturn(AppConstants.RT_LINEAR);
409                 ServletContext servConxt = mock(ServletContext.class);
410                 when(mockedRequest.getSession().getServletContext()).thenReturn(servConxt);
411                 when(servConxt.getRealPath(File.separator)).thenReturn("testpath");
412                 when(rr.getChartType()).thenReturn("test");
413                 when(rr.getDisplayChart()).thenReturn(true);
414                 ArrayList paramNamePDFValues = new ArrayList();
415                 paramNamePDFValues.add("test1");
416                 paramNamePDFValues.add("test2");
417                 when(rr.getParamNameValuePairsforPDFExcel(mockedRequest, 1)).thenReturn(paramNamePDFValues);
418                 when(rr.getFormFieldComments(mockedRequest)).thenReturn("test");
419                 TreeMap values = new TreeMap<>();
420                 values.put("test", rr);
421                 TreeMap values2 = new TreeMap<>();
422                 values2.put("test3", rd);
423                 TreeMap values3 = new TreeMap<>();
424                 values3.put("test4", "c");
425                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP)).thenReturn(values);
426                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP)).thenReturn(values2);
427                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP)).thenReturn(values3);
428                 pdfReportHandler.createPdfFileContent(mockedRequest, mockedResponse, 2);
429         }
430         
431         @SuppressWarnings({ "rawtypes", "unchecked", "static-access" })
432         @Test
433         public void createPdfFileContent2Test() throws Exception {
434                 PowerMockito.mockStatic(Image.class);
435                 Document doc =  mock(Document.class);
436                 CustomReportType crType =  mock(CustomReportType.class);
437
438                 DataSet ds = mock(DataSet.class);
439                 PowerMockito.whenNew(Document.class).withNoArguments().thenReturn(doc);
440                 PowerMockito.when(doc.newPage()).thenReturn(true);
441                 when(AppUtils.getUserID(mockedRequest)).thenReturn("test");
442                 ReportRuntime rr = mock(ReportRuntime.class);
443                 ReportData rd = mock(ReportData.class);
444                 when(Globals.isCoverPageNeeded()).thenReturn(true);
445                 when(Globals.getSessionInfoForTheCoverPage()).thenReturn("test,test1");
446                 when(AppUtils.getRequestNvlValue(mockedRequest, "test1")).thenReturn("test1");
447                 when(rr.isPDFCoverPage()).thenReturn(true);
448                 when(rr.getReportID()).thenReturn("test");
449                 when(rr.getPDFOrientation()).thenReturn("portait");
450                 when(AppUtils.getRequestNvlValue(mockedRequest, "multiplePieOrder")).thenReturn("row");
451                 when(AppUtils.getRequestNvlValue(mockedRequest, "multiplePieLabelDisplay")).thenReturn("test");
452                 when(AppUtils.getRequestNvlValue(mockedRequest, "chartDisplay")).thenReturn("3D");
453                 when(mockedRequest.getSession().getAttribute("report_runtime")).thenReturn(rr);
454                 when(mockedRequest.getSession().getAttribute("dashboard_report_id")).thenReturn("test");
455                 ServletContext servConxt = mock(ServletContext.class);
456                 when(mockedRequest.getSession().getServletContext()).thenReturn(servConxt);
457                 when(servConxt.getRealPath(File.separator)).thenReturn("testpath");
458                 when(rr.getChartType()).thenReturn(AppConstants.GT_PIE_MULTIPLE);
459                 when(rr.getDisplayChart()).thenReturn(true);
460                 ArrayList paramNamePDFValues = new ArrayList();
461                 paramNamePDFValues.add("test1");
462                 paramNamePDFValues.add("test2");
463                 when(rr.getParamNameValuePairsforPDFExcel(mockedRequest, 2)).thenReturn(paramNamePDFValues);
464                 when(rr.getFormFieldComments(mockedRequest)).thenReturn("test");
465                 when(rr.getLegendPosition()).thenReturn("test");
466                 when(rr.hideChartToolTips()).thenReturn(true);
467                 when(AppUtils.getRequestNvlValue(mockedRequest, "hideLegend")).thenReturn("Y");
468                 when(rr.getLegendLabelAngle()).thenReturn("test");
469                 when(rr.getMaxLabelsInDomainAxis()).thenReturn("test");
470                 when(rr.getRangeAxisLowerLimit()).thenReturn("10");
471                 when(rr.getRangeAxisUpperLimit()).thenReturn("10");
472                 when(AppUtils.getRequestNvlValue(mockedRequest, "totalOnChart")).thenReturn("Y");
473                 List chartGroups = new ArrayList<>();
474                 when(rr.getAllChartGroups()).thenReturn(chartGroups);
475                 ReportParamValues reportValues=  new ReportParamValues();
476                 when(rr.getReportParamValues()).thenReturn(reportValues);
477                 when(rr.getFormFieldFilled(rr.getChartLeftAxisLabel())).thenReturn("test");
478                 when(rr.getFormFieldFilled(rr.getChartRightAxisLabel())).thenReturn("test");
479                 HashMap requestParams = new HashMap<>();
480                 requestParams.put("", "test");
481                 
482                 DataSourceList dataSourceList = new DataSourceList();
483
484                 List<DataSourceType> list = new ArrayList<>();
485                 DataSourceType dataSourceType = new DataSourceType();
486                 dataSourceType.setTableName("test");
487                 dataSourceType.setRefTableId("1");
488                 dataSourceType.setTableId("1");
489                 List<DataColumnType> dataColumnTypeList = new ArrayList<>();
490                 DataColumnType dataColumnType = new DataColumnType();
491                 dataColumnType.setChartGroup("test");
492                 dataColumnType.setYAxis("test");
493                 dataColumnType.setColName("[test");
494                 dataColumnType.setColOnChart("LEGEND");
495                 dataColumnType.setDisplayName("chart_total");
496                 dataColumnType.setColId("1");
497                 dataColumnType.setTableId("1");
498                 dataColumnType.setDependsOnFormField("test");
499                 dataColumnType.setColType("DATE");
500                 dataColumnType.setCrossTabValue("ROW");
501                 dataColumnType.setPdfDisplayWidthInPxls("0.0");
502                 dataColumnType.setVisible(true);
503                 dataColumnType.setCalculated(true);
504                 dataColumnTypeList.add(dataColumnType);
505                 DataColumnType dataColumnType1 = new DataColumnType();
506                 dataColumnType1.setCrossTabValue("COLUMN");
507                 dataColumnType1.setColId("1");
508                 dataColumnType1.setVisible(true);
509                 dataColumnType1.setPdfDisplayWidthInPxls("1.0");
510                 dataColumnTypeList.add(dataColumnType1);
511
512                 DataColumnList dataColumnList = new DataColumnList();
513                 dataColumnList.dataColumn = dataColumnTypeList;
514                 dataSourceType.setDataColumnList(dataColumnList);
515                 list.add(dataSourceType);
516                 dataSourceList.dataSource = list;
517                 when(crType.getDataSourceList()).thenReturn(dataSourceList);
518                 
519                 when(Globals.getRequestParamtersMap(mockedRequest, false)).thenReturn(requestParams);
520                 ds.set(0, "test");
521                 when(mockedRequest.getSession().getAttribute(AppConstants.RI_CHART_DATA)).thenReturn(ds);
522                 when(rr.hasSeriesColumn()).thenReturn(true);
523                 TreeMap values = new TreeMap<>();
524                 values.put("test", rr);
525                 TreeMap values2 = new TreeMap<>();
526                 values2.put("test3", rd);
527                 TreeMap values3 = new TreeMap<>();
528                 values3.put("test4", "c");
529                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTRUNTIME_MAP)).thenReturn(values);
530                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_REPORTDATA_MAP)).thenReturn(values2);
531                 when(mockedRequest.getSession().getAttribute(AppConstants.SI_DASHBOARD_DISPLAYTYPE_MAP)).thenReturn(values3);
532                 pdfReportHandler.createPdfFileContent(mockedRequest, mockedResponse, 3);
533         }
534         
535 }