2 * ============LICENSE_START==========================================
4 * ===================================================================
5 * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6 * ===================================================================
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
13 * http://www.apache.org/licenses/LICENSE-2.0
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.
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
26 * https://creativecommons.org/licenses/by/4.0/
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.
34 * ============LICENSE_END============================================
38 package org.onap.portalsdk.analytics.model.definition;
40 import static org.junit.Assert.assertEquals;
41 import static org.junit.Assert.assertFalse;
42 import static org.junit.Assert.assertTrue;
44 import java.io.FileInputStream;
45 import java.io.InputStream;
46 import java.sql.Connection;
47 import java.sql.PreparedStatement;
48 import java.sql.ResultSet;
49 import java.sql.SQLException;
50 import java.util.ArrayList;
51 import java.util.List;
52 import java.util.Vector;
54 import javax.servlet.http.HttpServletRequest;
55 import javax.servlet.http.HttpSession;
56 import org.apache.commons.io.IOUtils;
57 import org.junit.Before;
58 import org.junit.Test;
59 import org.junit.runner.RunWith;
60 import org.mockito.Matchers;
61 import org.mockito.Mock;
62 import org.mockito.Mockito;
63 import org.mockito.MockitoAnnotations;
64 import org.onap.portalsdk.analytics.error.RaptorException;
65 import org.onap.portalsdk.analytics.error.ReportSQLException;
66 import org.onap.portalsdk.analytics.model.base.IdNameValue;
67 import org.onap.portalsdk.analytics.model.runtime.FormField;
68 import org.onap.portalsdk.analytics.model.runtime.ReportParamValues;
69 import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
70 import org.onap.portalsdk.analytics.system.AppUtils;
71 import org.onap.portalsdk.analytics.system.ConnectionUtils;
72 import org.onap.portalsdk.analytics.system.DbUtils;
73 import org.onap.portalsdk.analytics.system.Globals;
74 import org.onap.portalsdk.analytics.util.AppConstants;
75 import org.onap.portalsdk.analytics.util.DataSet;
76 import org.onap.portalsdk.analytics.util.RemDbInfo;
77 import org.onap.portalsdk.analytics.xmlobj.DataColumnType;
78 import org.onap.portalsdk.analytics.xmlobj.DataSourceType;
79 import org.onap.portalsdk.analytics.xmlobj.FormFieldList;
80 import org.onap.portalsdk.analytics.xmlobj.FormFieldType;
81 import org.owasp.esapi.ESAPI;
82 import org.owasp.esapi.Encoder;
83 import org.powermock.api.mockito.PowerMockito;
84 import org.powermock.core.classloader.annotations.PrepareForTest;
85 import org.powermock.modules.junit4.PowerMockRunner;
87 import com.mchange.v2.debug.ThreadNameStackTraceRecorder;
89 @RunWith(PowerMockRunner.class)
90 @PrepareForTest({ AppUtils.class, Globals.class, DbUtils.class, AppUtils.class, ESAPI.class, ConnectionUtils.class, ReportSchedule.class})
92 public class ReportScheduleTest {
94 ReportSchedule reportSchedule;
96 private String REPORT_ID="1000";
97 private String USER_ID="USER#1";
100 HttpServletRequest httpServletRequest;
103 HttpSession httpSession;
106 ReportRuntime reportRuntime;
109 ReportDefinition reportDefinition;
118 Connection connection;
121 PreparedStatement preparedStatement;
130 FileInputStream fileInputStream;
133 public void setUp() throws Exception {
135 PowerMockito.mockStatic(Globals.class);
136 PowerMockito.mockStatic(AppUtils.class);
137 PowerMockito.mockStatic(DbUtils.class);
138 PowerMockito.mockStatic(AppUtils.class);
139 PowerMockito.mockStatic(ESAPI.class);
140 PowerMockito.mockStatic(ConnectionUtils.class);
142 MockitoAnnotations.initMocks(this);
144 Mockito.when(httpSession.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(reportRuntime);
145 Mockito.when(httpServletRequest.getSession()).thenReturn(httpSession);
147 Mockito.when(reportRuntime.getReportID()).thenReturn(REPORT_ID);
148 Mockito.when(AppUtils.getUserID(httpServletRequest)).thenReturn("USER1");
150 PowerMockito.when(ESAPI.encoder()).thenReturn(encoder);
152 createInstanceOfReportSchedule_case1();
153 createInstanceOfReportSchedule_case2();
157 private void createInstanceOfReportSchedule_case1() throws Exception {
158 String load_schedule_data = "SELECT rs.enabled_yn, DATE_FORMAT(rs.start_date, '%m/%d/%Y') start_date, DATE_FORMAT(rs.end_date, '%m/%d/%Y') end_date, DATE_FORMAT(rs.run_date, '%m/%d/%Y') run_date, coalesce(DATE_FORMAT(rs.run_date, '%h'), '12') run_hour, coalesce(DATE_FORMAT(rs.run_date, '%i'), '00') run_min, coalesce(DATE_FORMAT(rs.run_date, '%p'), 'AM') run_ampm, rs.recurrence, rs.conditional_yn, rs.notify_type, rs.max_row, rs.initial_formfields, rs.schedule_id, coalesce(DATE_FORMAT(rs.end_date, '%h'), '11') end_hour, coalesce(DATE_FORMAT(rs.end_date, '%i'), '45') end_min, coalesce(DATE_FORMAT(rs.end_date, '%p'), 'PM') end_ampm, encrypt_yn, attachment_yn FROM cr_report_schedule rs WHERE rs.rep_id = [reportID]";
159 String load_schedule_getid = "SELECT rsu.user_id, concat(fuser.last_name,', ',fuser.first_name), fuser.login_id FROM cr_report_schedule_users rsu, fn_user fuser WHERE rsu.rep_id = [reportID] AND rsu.schedule_id = [getScheduleID()] and rsu.user_id IS NOT NULL and rsu.user_id = fuser.user_id";
160 String load_schedule_users = "SELECT rsu.role_id FROM cr_report_schedule_users rsu WHERE rsu.rep_id = [reportID] AND rsu.schedule_id = [getScheduleID()] AND rsu.role_id IS NOT NULL";
162 PowerMockito.when(Globals.getLoadScheduleData()).thenReturn(load_schedule_data);
163 PowerMockito.when(Globals.getLoadScheduleGetId()).thenReturn(load_schedule_getid);
164 PowerMockito.when(Globals.getLoadScheduleUsers()).thenReturn(load_schedule_users);
165 PowerMockito.when(AppUtils.isAdminUser(httpServletRequest)).thenReturn(true);
166 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(true);
168 //reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, false, httpServletRequest);
169 //String dataArray[] = {"Y", "10/10/2018", "10/10/2999", "01/11/2018", "9", "10", "AM", "Y", "Y", "0", "512","", "2000", "10", "30", "PM," };
171 PowerMockito.when(DbUtils.getConnection()).thenReturn(connection);
173 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
174 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
175 Mockito.when(resultSet.next()).thenReturn(true);
176 Mockito.when(resultSet.getClob(Mockito.anyInt())).thenReturn(clob);
178 String source = "This is the source of my input stream";
179 InputStream inputStream = IOUtils.toInputStream(source, "UTF-8");
181 Mockito.when(clob.getAsciiStream()).thenReturn(inputStream);
184 PowerMockito.when(DbUtils.executeQuery(Mockito.anyString())).thenReturn(dataSet1);
185 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
187 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("Some Value1");
188 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
190 reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, true, httpServletRequest);
191 reportSchedule.setEncryptMode("test");
192 reportSchedule.setEndAMPM("AM");
193 reportSchedule.setEndHour("10");
194 reportSchedule.setEndMin("00");
195 reportSchedule.addZero("0");
200 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
203 public String answer(InvocationOnMock invocation) throws Throwable {
204 Object args[] = invocation.getArguments();
208 columnIndex = Integer.parseInt((String)args[1]);
209 } catch (Exception e) {
210 if ("encrypt_yn".equals((String)args[1]))
220 private void createInstanceOfReportSchedule_case2() throws Exception {
221 String load_schedule_data = "SELECT rs.enabled_yn, DATE_FORMAT(rs.start_date, '%m/%d/%Y') start_date, DATE_FORMAT(rs.end_date, '%m/%d/%Y') end_date, DATE_FORMAT(rs.run_date, '%m/%d/%Y') run_date, coalesce(DATE_FORMAT(rs.run_date, '%h'), '12') run_hour, coalesce(DATE_FORMAT(rs.run_date, '%i'), '00') run_min, coalesce(DATE_FORMAT(rs.run_date, '%p'), 'AM') run_ampm, rs.recurrence, rs.conditional_yn, rs.notify_type, rs.max_row, rs.initial_formfields, rs.schedule_id, coalesce(DATE_FORMAT(rs.end_date, '%h'), '11') end_hour, coalesce(DATE_FORMAT(rs.end_date, '%i'), '45') end_min, coalesce(DATE_FORMAT(rs.end_date, '%p'), 'PM') end_ampm, encrypt_yn, attachment_yn FROM cr_report_schedule rs WHERE rs.rep_id = [reportID]";
222 String load_schedule_getid = "SELECT rsu.user_id, concat(fuser.last_name,', ',fuser.first_name), fuser.login_id FROM cr_report_schedule_users rsu, fn_user fuser WHERE rsu.rep_id = [reportID] AND rsu.schedule_id = [getScheduleID()] and rsu.user_id IS NOT NULL and rsu.user_id = fuser.user_id";
223 String load_schedule_users = "SELECT rsu.role_id FROM cr_report_schedule_users rsu WHERE rsu.rep_id = [reportID] AND rsu.schedule_id = [getScheduleID()] AND rsu.role_id IS NOT NULL";
225 String new_schedule_data = "select coalesce(max(schedule_id),0)+1 AS sequence from cr_report_schedule";
227 PowerMockito.when(Globals.getLoadScheduleData()).thenReturn(load_schedule_data);
228 PowerMockito.when(Globals.getLoadScheduleGetId()).thenReturn(load_schedule_getid);
229 PowerMockito.when(Globals.getLoadScheduleUsers()).thenReturn(load_schedule_users);
230 PowerMockito.when(AppUtils.isAdminUser(httpServletRequest)).thenReturn(false);
231 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(false);
232 PowerMockito.when(Globals.getNewScheduleData()).thenReturn(new_schedule_data);
233 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(false);
235 PowerMockito.when(Globals.getUseLoginIdInSchedYN()).thenReturn("Y");
237 //reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, false, httpServletRequest);
238 //String dataArray[] = {"Y", "10/10/2018", "10/10/2999", "01/11/2018", "9", "10", "AM", "Y", "Y", "0", "512","", "2000", "10", "30", "PM," };
240 PowerMockito.when(DbUtils.getConnection()).thenReturn(connection);
242 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
243 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
244 Mockito.when(resultSet.next()).thenReturn(true);
245 Mockito.when(resultSet.getClob(Mockito.anyInt())).thenReturn(clob);
247 String source = "This is the source of my input stream";
248 InputStream inputStream = IOUtils.toInputStream(source, "UTF-8");
250 Mockito.when(clob.getAsciiStream()).thenReturn(inputStream);
253 PowerMockito.when(DbUtils.executeQuery(Mockito.anyString())).thenReturn(dataSet1);
254 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
256 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("Some Value1");
257 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
259 reportSchedule = new ReportSchedule(REPORT_ID, "SCHDULE_ID", USER_ID, httpServletRequest);
262 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
265 public String answer(InvocationOnMock invocation) throws Throwable {
266 Object args[] = invocation.getArguments();
270 columnIndex = Integer.parseInt((String)args[1]);
271 } catch (Exception e) {
272 if ("encrypt_yn".equals((String)args[1]))
285 public void testAddEmailToUser() {
286 reportSchedule.addEmailToUser("UserID1", "UserName1");
287 reportSchedule.addEmailToUser("UserID2", "UserName2");
288 reportSchedule.addEmailToUser("UserID2", "UserName2");
293 public void testPersistScheduleData_case1() throws Exception {
294 reportSchedule.persistScheduleData(connection, httpServletRequest);
298 public void testPersistScheduleData_RowCount_case1() throws Exception {
299 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
300 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
301 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
302 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
303 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
305 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
306 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
307 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
308 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
309 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
310 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
311 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
313 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
314 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
315 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
317 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_LOCAL);
319 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
320 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
321 Mockito.when(resultSet.next()).thenReturn(true);
323 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
325 reportSchedule.setDownloadLimit("1000");
326 reportSchedule.setSchedEnabled("N");
327 reportSchedule.setFormFields("Field1");
328 reportSchedule.setNotify_type("1");
329 reportSchedule.setStartDate("10/10/2018");
330 reportSchedule.setEndDate("10/10/2019");
331 reportSchedule.setRunDate("10/10/2019");
332 reportSchedule.setRunHour("10");
333 reportSchedule.setRunMin("10");
334 reportSchedule.setRunAMPM("PM");
335 reportSchedule.setRecurrence("Y");
336 reportSchedule.setAttachmentMode("N");
337 reportSchedule.setConditionSQL("SELECT coalesce(cr.owner_id, cr.create_id) owner_id, cr.create_id, DATE_FORMAT(cr.create_date, '[Globals.getTimeFormat()]') create_date, maint_id, DATE_FORMAT(cr.maint_date, '[Globals.getTimeFormat()]') update_date, cr.menu_id, cr.menu_approved_yn FROM cr_report cr WHERE cr.rep_id= [reportID]");
339 reportSchedule.persistScheduleData(connection, httpServletRequest);
343 public void testPersistScheduleData_RowCount_case2() throws Exception {
344 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
345 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
346 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
347 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
348 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
350 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
351 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
352 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
353 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
354 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
355 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
356 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
358 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
359 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
360 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
362 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
364 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
365 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
366 Mockito.when(resultSet.next()).thenReturn(true);
368 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
370 reportSchedule.setSchedEnabled("N");
371 reportSchedule.setConditionSQL("SELECT coalesce(cr.owner_id, cr.create_id) owner_id, cr.create_id, DATE_FORMAT(cr.create_date, '[Globals.getTimeFormat()]') create_date, maint_id, DATE_FORMAT(cr.maint_date, '[Globals.getTimeFormat()]') update_date, cr.menu_id, cr.menu_approved_yn FROM cr_report cr WHERE cr.rep_id= [reportID]");
373 reportSchedule.persistScheduleData(connection, httpServletRequest);
377 public void testPersistScheduleData_FormFieldList_case1() throws Exception {
378 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
379 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
380 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
381 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
382 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
384 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
385 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
386 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
387 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
388 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
389 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
390 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
391 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
392 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
393 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
395 FormFieldList formFieldList = new FormFieldList();
396 formFieldList.setComment("test");
397 FormFieldType formFieldType = new FormFieldType();
398 formFieldType.setFieldId("test");
399 formFieldType.setColId("1");
400 formFieldType.setFieldName("test");
401 formFieldType.setFieldType("type");
402 formFieldType.setValidationType("validation");
403 formFieldType.setMandatory("Y");
404 formFieldType.setDefaultValue("test");
405 formFieldType.setGroupFormField(true);
406 formFieldList.getFormField().add(formFieldType);
407 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
408 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("test");
409 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
410 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(true);
411 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
412 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
413 DataSet ds = Mockito.mock(DataSet.class);
414 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
415 Mockito.when(ds.getRowCount()).thenReturn(1);
416 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
417 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
418 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("");
420 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
421 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
422 Mockito.when(resultSet.next()).thenReturn(true);
424 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
426 reportSchedule.setSchedEnabled("N");
427 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE AND [test] ORDER BY");
429 reportSchedule.persistScheduleData(connection, httpServletRequest);
433 public void testPersistScheduleData_FormFieldList_case2() throws Exception {
434 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
435 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
436 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
437 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
438 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
440 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
441 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
442 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
443 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
444 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
445 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
446 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
447 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
448 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
449 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
451 FormFieldList formFieldList = new FormFieldList();
452 formFieldList.setComment("test");
453 FormFieldType formFieldType = new FormFieldType();
454 formFieldType.setFieldId("test");
455 formFieldType.setColId("1");
456 formFieldType.setFieldName("test");
457 formFieldType.setFieldType("type");
458 formFieldType.setValidationType("validation");
459 formFieldType.setMandatory("Y");
460 formFieldType.setDefaultValue("test");
461 formFieldType.setGroupFormField(true);
462 formFieldList.getFormField().add(formFieldType);
463 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
464 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("test");
465 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
466 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
467 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
468 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
469 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
470 DataSet ds = Mockito.mock(DataSet.class);
471 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
472 Mockito.when(ds.getRowCount()).thenReturn(1);
473 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
474 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
475 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
476 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
477 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
478 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
479 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
481 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
482 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
483 Mockito.when(resultSet.next()).thenReturn(true);
485 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
487 reportSchedule.setSchedEnabled("N");
488 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [test] ORDER BY");
490 reportSchedule.persistScheduleData(connection, httpServletRequest);
494 public void testPersistScheduleData_FormFieldList_case3() throws Exception {
495 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
496 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
497 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
498 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
499 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
501 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
502 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
503 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
504 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
505 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
506 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
507 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
508 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
509 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
510 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
512 FormFieldList formFieldList = new FormFieldList();
513 formFieldList.setComment("test");
514 FormFieldType formFieldType = new FormFieldType();
515 formFieldType.setFieldId("test");
516 formFieldType.setColId("1");
517 formFieldType.setFieldName("test");
518 formFieldType.setFieldType("type");
519 formFieldType.setValidationType("validation");
520 formFieldType.setMandatory("Y");
521 formFieldType.setDefaultValue("test");
522 formFieldType.setGroupFormField(true);
523 formFieldType.setValidationType(FormField.VT_TIMESTAMP_MIN);
524 formFieldList.getFormField().add(formFieldType);
525 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
526 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
527 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
528 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
529 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
530 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
531 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
532 DataSet ds = Mockito.mock(DataSet.class);
533 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
534 Mockito.when(ds.getRowCount()).thenReturn(1);
535 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
536 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
537 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
538 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
539 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
540 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
541 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
543 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
544 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
545 Mockito.when(resultSet.next()).thenReturn(true);
547 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
549 reportSchedule.setSchedEnabled("N");
550 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [report_id] ORDER BY");
552 reportSchedule.persistScheduleData(connection, httpServletRequest);
556 public void testPersistScheduleData_FormFieldList_case4() throws Exception {
557 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
558 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
559 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
560 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
561 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
563 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
564 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
565 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
566 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
567 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
568 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
569 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
570 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
571 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
572 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
574 FormFieldList formFieldList = new FormFieldList();
575 formFieldList.setComment("test");
576 FormFieldType formFieldType = new FormFieldType();
577 formFieldType.setFieldId("test");
578 formFieldType.setColId("1");
579 formFieldType.setFieldName("test");
580 formFieldType.setFieldType("type");
581 formFieldType.setValidationType("validation");
582 formFieldType.setMandatory("Y");
583 formFieldType.setDefaultValue("test");
584 formFieldType.setGroupFormField(true);
585 formFieldType.setValidationType(FormField.VT_TIMESTAMP_MIN);
586 formFieldList.getFormField().add(formFieldType);
587 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
588 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
589 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
590 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
591 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
592 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
593 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
594 DataSet ds = Mockito.mock(DataSet.class);
595 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
596 Mockito.when(ds.getRowCount()).thenReturn(1);
597 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
598 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
599 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
600 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
601 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
602 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
603 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
605 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
606 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
607 Mockito.when(resultSet.next()).thenReturn(true);
609 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
611 reportSchedule.setSchedEnabled("N");
612 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [report_id] ORDER BY");
614 reportSchedule.persistScheduleData(connection, httpServletRequest);
618 public void testPersistScheduleData_FormFieldList_case5() throws Exception {
619 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
620 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
621 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
622 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
623 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
625 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
626 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
627 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
628 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
629 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
630 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
631 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
632 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
633 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
634 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
636 FormFieldList formFieldList = new FormFieldList();
637 formFieldList.setComment("test");
638 FormFieldType formFieldType = new FormFieldType();
639 formFieldType.setFieldId("test");
640 formFieldType.setColId("1");
641 formFieldType.setFieldName("test");
642 formFieldType.setFieldType("type");
643 formFieldType.setValidationType("validation");
644 formFieldType.setMandatory("Y");
645 formFieldType.setDefaultValue("test");
646 formFieldType.setGroupFormField(true);
647 formFieldType.setValidationType(FormField.VT_TIMESTAMP_SEC);
648 formFieldList.getFormField().add(formFieldType);
649 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
650 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
651 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
652 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
653 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
654 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
655 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
656 DataSet ds = Mockito.mock(DataSet.class);
657 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
658 Mockito.when(ds.getRowCount()).thenReturn(1);
659 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
660 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
661 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
662 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
663 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("TESTDB");
664 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
665 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
667 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
668 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
669 Mockito.when(resultSet.next()).thenReturn(true);
671 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
673 reportSchedule.setSchedEnabled("N");
674 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [test] ORDER BY");
676 reportSchedule.persistScheduleData(connection, httpServletRequest);
681 public void testPersistScheduleData_WithRaptorException() throws Exception {
682 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
683 String execute_update_users = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], [emailToUsers.get(i)).getId()], NULL, [(i + 1)])";
684 String execute_update_roles = "INSERT INTO cr_report_schedule_users (schedule_id, rep_id, user_id, role_id, order_no) VALUES([getScheduleID()], [reportID], NULL, [emailToRoles.get(i)).getId()], [((emailToUsers.size() + i + 1)])";
685 String execute_update_activity = "INSERT into cr_schedule_activity_log (schedule_id, notes, run_time) values ([getScheduleID()],'Submitted:Schedule',TO_DATE('[getRunDate()] [getRunHour()]:[getRunMin()] [getRunAMPM()]', 'MM/DD/YYYY HH:MI AM'))";
686 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
687 String new_schedule_data = "select coalesce(max(schedule_id),0)+1 AS sequence from cr_report_schedule";
688 String persist_cond_sql_set = "update cr_report_schedule set condition_sql = ? where schedule_id = [scheduleId]";
690 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
691 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
692 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
693 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
694 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
695 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
696 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
697 PowerMockito.when(Globals.getPersistCondSqlSet()).thenReturn(persist_cond_sql_update);
699 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
700 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
701 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
702 PowerMockito.when(Globals.getNewScheduleData()).thenReturn(new_schedule_data);
703 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
705 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
706 Mockito.when(preparedStatement.executeUpdate()).thenReturn(1);
707 Mockito.when(resultSet.next()).thenReturn(false);
708 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
711 reportSchedule.setSchedEnabled("N");
712 reportSchedule.setStartDate("10/10/2018");
713 reportSchedule.setEndDate("10/10/2019");
714 reportSchedule.setRunDate("10/10/2019");
715 reportSchedule.setRecurrence("Y");
716 reportSchedule.addEmailToUser("UserID1", "UserName1");
717 reportSchedule.addEmailToRole("roleId1", "roleName1");
718 reportSchedule.setConditionSQL("SELECT coalesce(cr.owner_id, cr.create_id) owner_id, cr.create_id, DATE_FORMAT(cr.create_date, '[Globals.getTimeFormat()]') create_date, maint_id, DATE_FORMAT(cr.maint_date, '[Globals.getTimeFormat()]') update_date, cr.menu_id, cr.menu_approved_yn FROM cr_report cr WHERE cr.rep_id= [reportID]");
720 reportSchedule.persistScheduleData(connection, httpServletRequest);
725 public void testDeleteScheduleData_case1() throws RaptorException {
726 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
727 String delete_schedule_data_users = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
728 String delete_schedule_data_id = "DELETE FROM cr_report_schedule where rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
730 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
731 PowerMockito.when(Globals.getDeleteScheduleDataUsers()).thenReturn(delete_schedule_data_users);
732 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
733 PowerMockito.when(Globals.getDeleteScheduleDataId()).thenReturn(delete_schedule_data_id);
735 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
737 reportSchedule.deleteScheduleData(connection);
741 public void testDeleteScheduleData_case2() throws RaptorException {
742 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
743 String delete_schedule_data_users = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
744 String delete_schedule_data_id = "DELETE FROM cr_report_schedule where rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
746 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
747 PowerMockito.when(Globals.getDeleteScheduleDataUsers()).thenReturn(delete_schedule_data_users);
748 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
749 PowerMockito.when(Globals.getDeleteScheduleDataId()).thenReturn(delete_schedule_data_id);
751 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
753 reportSchedule.deleteScheduleData(connection);
756 @Test(expected=RaptorException.class)
757 public void testDeleteScheduleData_case3() throws RaptorException {
758 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
760 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
761 PowerMockito.when(DbUtils.startTransaction()).thenReturn(null);
762 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
764 PowerMockito.doThrow(new ReportSQLException("Failed to save data...")).when(DbUtils.class);
765 DbUtils.commitTransaction(Mockito.anyObject());
767 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
769 reportSchedule.deleteScheduleData(null);
773 public void testDeleteScheduleData_case4() throws RaptorException {
774 reportSchedule.setReportID("-1");
775 reportSchedule.deleteScheduleData(null);
779 @Test(expected=RuntimeException.class)
780 public void testLoadConditionalSQL_Error_case1() throws Exception {
781 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
783 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
784 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
785 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
786 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(true);
787 Mockito.when(resultSet.next()).thenReturn(false);
789 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
791 ReportSchedule.loadConditionalSQL("scheduleId#123");
795 @Test(expected=RaptorException.class)
796 public void testLoadConditionalSQL_Error_case2() throws Exception {
797 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
798 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
799 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
800 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
801 Mockito.when(Globals.isWeblogicServer()).thenReturn(false);
802 Mockito.when(Globals.isPostgreSQL()).thenReturn(false);
803 Mockito.when(Globals.isMySQL()).thenReturn(true);
805 Mockito.when(resultSet.next()).thenReturn(false);
807 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
809 ReportSchedule.loadConditionalSQL("scheduleId#123");
813 public void testLoadConditionalSQL_Error_case3() throws Exception {
814 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
815 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
816 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
817 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
818 Mockito.when(Globals.isWeblogicServer()).thenReturn(false);
819 Mockito.when(Globals.isPostgreSQL()).thenReturn(false);
820 Mockito.when(Globals.isMySQL()).thenReturn(true);
822 Mockito.when(resultSet.next()).thenReturn(true);
823 Mockito.when(resultSet.getString(1)).thenThrow(new SQLException());
824 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
826 ReportSchedule.loadConditionalSQL("scheduleId#123");
831 public void testAddEmailArrayToUser() {
832 ArrayList<IdNameValue> allSelectedUsers= new ArrayList<>();
833 IdNameValue idNameValue = new IdNameValue();
834 idNameValue.setId("1");
835 idNameValue.setName("test");
836 idNameValue.setReadOnly(true);
837 idNameValue.setDefaultValue(true);
838 allSelectedUsers.add(idNameValue);
839 reportSchedule.addEmailArrayToUser(allSelectedUsers);
840 assertEquals("1",((IdNameValue)reportSchedule.getEmailToUsers().get(0)).getId());
844 public void testRemoveEmailToUser() {
845 reportSchedule.removeEmailToUser("1");
846 List value=reportSchedule.getEmailToUsers();
847 boolean removed=value.contains(value);
848 assertFalse(removed);
853 public void testAddEmailArrayToRole() {
854 ArrayList<IdNameValue> allSelectedUsers= new ArrayList<>();
855 IdNameValue idNameValue = new IdNameValue();
856 idNameValue.setId("roleID1");
857 idNameValue.setName("roleName1");
858 idNameValue.setReadOnly(true);
859 idNameValue.setDefaultValue(true);
860 allSelectedUsers.add(idNameValue);
861 reportSchedule.addEmailArrayToRole(allSelectedUsers);
862 assertEquals("roleID1",((IdNameValue)reportSchedule.getEmailToRoles().get(0)).getId());
866 public void testRemoveEmailToRole() {
867 reportSchedule.removeEmailToRole("roleID1");
868 List value=reportSchedule.getEmailToRoles();
869 boolean removed=value.contains(value);
870 assertFalse(removed);
874 public void testIsAttachmentMode() {
875 reportSchedule.setAttachmentMode("Y");
876 assertTrue(reportSchedule.isAttachmentMode());
881 public void testSetConditional() {
882 reportSchedule.setConditional("Y");
883 assertEquals("Y",reportSchedule.getConditional());