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.assertTrue;
43 import java.io.FileInputStream;
44 import java.io.InputStream;
45 import java.sql.Connection;
46 import java.sql.PreparedStatement;
47 import java.sql.ResultSet;
48 import java.sql.SQLException;
49 import java.util.ArrayList;
50 import java.util.List;
51 import java.util.Vector;
53 import javax.servlet.http.HttpServletRequest;
54 import javax.servlet.http.HttpSession;
55 import org.apache.commons.io.IOUtils;
56 import org.junit.Before;
57 import org.junit.Test;
58 import org.junit.runner.RunWith;
59 import org.mockito.Matchers;
60 import org.mockito.Mock;
61 import org.mockito.Mockito;
62 import org.mockito.MockitoAnnotations;
63 import org.onap.portalsdk.analytics.error.RaptorException;
64 import org.onap.portalsdk.analytics.error.ReportSQLException;
65 import org.onap.portalsdk.analytics.model.base.IdNameValue;
66 import org.onap.portalsdk.analytics.model.runtime.FormField;
67 import org.onap.portalsdk.analytics.model.runtime.ReportParamValues;
68 import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
69 import org.onap.portalsdk.analytics.system.AppUtils;
70 import org.onap.portalsdk.analytics.system.ConnectionUtils;
71 import org.onap.portalsdk.analytics.system.DbUtils;
72 import org.onap.portalsdk.analytics.system.Globals;
73 import org.onap.portalsdk.analytics.util.AppConstants;
74 import org.onap.portalsdk.analytics.util.DataSet;
75 import org.onap.portalsdk.analytics.util.RemDbInfo;
76 import org.onap.portalsdk.analytics.xmlobj.DataColumnType;
77 import org.onap.portalsdk.analytics.xmlobj.DataSourceType;
78 import org.onap.portalsdk.analytics.xmlobj.FormFieldList;
79 import org.onap.portalsdk.analytics.xmlobj.FormFieldType;
80 import org.owasp.esapi.ESAPI;
81 import org.owasp.esapi.Encoder;
82 import org.powermock.api.mockito.PowerMockito;
83 import org.powermock.core.classloader.annotations.PrepareForTest;
84 import org.powermock.modules.junit4.PowerMockRunner;
86 import com.mchange.v2.debug.ThreadNameStackTraceRecorder;
88 @RunWith(PowerMockRunner.class)
89 @PrepareForTest({ AppUtils.class, Globals.class, DbUtils.class, AppUtils.class, ESAPI.class, ConnectionUtils.class, ReportSchedule.class})
91 public class ReportScheduleTest {
93 ReportSchedule reportSchedule;
95 private String REPORT_ID="1000";
96 private String USER_ID="USER#1";
99 HttpServletRequest httpServletRequest;
102 HttpSession httpSession;
105 ReportRuntime reportRuntime;
108 ReportDefinition reportDefinition;
117 Connection connection;
120 PreparedStatement preparedStatement;
129 FileInputStream fileInputStream;
132 public void setUp() throws Exception {
134 PowerMockito.mockStatic(Globals.class);
135 PowerMockito.mockStatic(AppUtils.class);
136 PowerMockito.mockStatic(DbUtils.class);
137 PowerMockito.mockStatic(AppUtils.class);
138 PowerMockito.mockStatic(ESAPI.class);
139 PowerMockito.mockStatic(ConnectionUtils.class);
141 MockitoAnnotations.initMocks(this);
143 Mockito.when(httpSession.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(reportRuntime);
144 Mockito.when(httpServletRequest.getSession()).thenReturn(httpSession);
146 Mockito.when(reportRuntime.getReportID()).thenReturn(REPORT_ID);
147 Mockito.when(AppUtils.getUserID(httpServletRequest)).thenReturn("USER1");
149 PowerMockito.when(ESAPI.encoder()).thenReturn(encoder);
151 createInstanceOfReportSchedule_case1();
152 createInstanceOfReportSchedule_case2();
156 private void createInstanceOfReportSchedule_case1() throws Exception {
157 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]";
158 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";
159 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";
161 PowerMockito.when(Globals.getLoadScheduleData()).thenReturn(load_schedule_data);
162 PowerMockito.when(Globals.getLoadScheduleGetId()).thenReturn(load_schedule_getid);
163 PowerMockito.when(Globals.getLoadScheduleUsers()).thenReturn(load_schedule_users);
164 PowerMockito.when(AppUtils.isAdminUser(httpServletRequest)).thenReturn(true);
165 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(true);
167 //reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, false, httpServletRequest);
168 //String dataArray[] = {"Y", "10/10/2018", "10/10/2999", "01/11/2018", "9", "10", "AM", "Y", "Y", "0", "512","", "2000", "10", "30", "PM," };
170 PowerMockito.when(DbUtils.getConnection()).thenReturn(connection);
172 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
173 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
174 Mockito.when(resultSet.next()).thenReturn(true);
175 Mockito.when(resultSet.getClob(Mockito.anyInt())).thenReturn(clob);
177 String source = "This is the source of my input stream";
178 InputStream inputStream = IOUtils.toInputStream(source, "UTF-8");
180 Mockito.when(clob.getAsciiStream()).thenReturn(inputStream);
183 PowerMockito.when(DbUtils.executeQuery(Mockito.anyString())).thenReturn(dataSet1);
184 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
186 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("Some Value1");
187 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
189 reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, true, httpServletRequest);
190 reportSchedule.setEncryptMode("test");
191 reportSchedule.setEndAMPM("AM");
192 reportSchedule.setEndHour("10");
193 reportSchedule.setEndMin("00");
194 reportSchedule.addZero("0");
199 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
202 public String answer(InvocationOnMock invocation) throws Throwable {
203 Object args[] = invocation.getArguments();
207 columnIndex = Integer.parseInt((String)args[1]);
208 } catch (Exception e) {
209 if ("encrypt_yn".equals((String)args[1]))
219 private void createInstanceOfReportSchedule_case2() throws Exception {
220 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]";
221 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";
222 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";
224 String new_schedule_data = "select coalesce(max(schedule_id),0)+1 AS sequence from cr_report_schedule";
226 PowerMockito.when(Globals.getLoadScheduleData()).thenReturn(load_schedule_data);
227 PowerMockito.when(Globals.getLoadScheduleGetId()).thenReturn(load_schedule_getid);
228 PowerMockito.when(Globals.getLoadScheduleUsers()).thenReturn(load_schedule_users);
229 PowerMockito.when(AppUtils.isAdminUser(httpServletRequest)).thenReturn(false);
230 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(false);
231 PowerMockito.when(Globals.getNewScheduleData()).thenReturn(new_schedule_data);
232 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(false);
234 PowerMockito.when(Globals.getUseLoginIdInSchedYN()).thenReturn("Y");
236 //reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, false, httpServletRequest);
237 //String dataArray[] = {"Y", "10/10/2018", "10/10/2999", "01/11/2018", "9", "10", "AM", "Y", "Y", "0", "512","", "2000", "10", "30", "PM," };
239 PowerMockito.when(DbUtils.getConnection()).thenReturn(connection);
241 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
242 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
243 Mockito.when(resultSet.next()).thenReturn(true);
244 Mockito.when(resultSet.getClob(Mockito.anyInt())).thenReturn(clob);
246 String source = "This is the source of my input stream";
247 InputStream inputStream = IOUtils.toInputStream(source, "UTF-8");
249 Mockito.when(clob.getAsciiStream()).thenReturn(inputStream);
252 PowerMockito.when(DbUtils.executeQuery(Mockito.anyString())).thenReturn(dataSet1);
253 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
255 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("Some Value1");
256 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
258 reportSchedule = new ReportSchedule(REPORT_ID, "SCHDULE_ID", USER_ID, httpServletRequest);
261 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
264 public String answer(InvocationOnMock invocation) throws Throwable {
265 Object args[] = invocation.getArguments();
269 columnIndex = Integer.parseInt((String)args[1]);
270 } catch (Exception e) {
271 if ("encrypt_yn".equals((String)args[1]))
284 public void testAddEmailToUser() {
285 reportSchedule.addEmailToUser("UserID1", "UserName1");
286 reportSchedule.addEmailToUser("UserID2", "UserName2");
287 reportSchedule.addEmailToUser("UserID2", "UserName2");
292 public void testPersistScheduleData_case1() throws Exception {
293 reportSchedule.persistScheduleData(connection, httpServletRequest);
297 public void testPersistScheduleData_RowCount_case1() throws Exception {
298 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
299 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)])";
300 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)])";
301 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'))";
302 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
304 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
305 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
306 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
307 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
308 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
309 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
310 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
312 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
313 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
314 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
316 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_LOCAL);
318 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
319 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
320 Mockito.when(resultSet.next()).thenReturn(true);
322 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
324 reportSchedule.setDownloadLimit("1000");
325 reportSchedule.setSchedEnabled("N");
326 reportSchedule.setFormFields("Field1");
327 reportSchedule.setNotify_type("1");
328 reportSchedule.setStartDate("10/10/2018");
329 reportSchedule.setEndDate("10/10/2019");
330 reportSchedule.setRunDate("10/10/2019");
331 reportSchedule.setRunHour("10");
332 reportSchedule.setRunMin("10");
333 reportSchedule.setRunAMPM("PM");
334 reportSchedule.setRecurrence("Y");
335 reportSchedule.setAttachmentMode("N");
336 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]");
338 reportSchedule.persistScheduleData(connection, httpServletRequest);
342 public void testPersistScheduleData_RowCount_case2() throws Exception {
343 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
344 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)])";
345 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)])";
346 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'))";
347 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
349 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
350 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
351 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
352 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
353 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
354 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
355 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
357 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
358 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
359 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
361 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
363 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
364 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
365 Mockito.when(resultSet.next()).thenReturn(true);
367 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
369 reportSchedule.setSchedEnabled("N");
370 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]");
372 reportSchedule.persistScheduleData(connection, httpServletRequest);
376 public void testPersistScheduleData_FormFieldList_case1() throws Exception {
377 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
378 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)])";
379 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)])";
380 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'))";
381 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
383 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
384 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
385 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
386 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
387 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
388 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
389 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
390 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
391 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
392 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
394 FormFieldList formFieldList = new FormFieldList();
395 formFieldList.setComment("test");
396 FormFieldType formFieldType = new FormFieldType();
397 formFieldType.setFieldId("test");
398 formFieldType.setColId("1");
399 formFieldType.setFieldName("test");
400 formFieldType.setFieldType("type");
401 formFieldType.setValidationType("validation");
402 formFieldType.setMandatory("Y");
403 formFieldType.setDefaultValue("test");
404 formFieldType.setGroupFormField(true);
405 formFieldList.getFormField().add(formFieldType);
406 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
407 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("test");
408 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
409 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(true);
410 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
411 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
412 DataSet ds = Mockito.mock(DataSet.class);
413 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
414 Mockito.when(ds.getRowCount()).thenReturn(1);
415 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
416 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
417 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("");
419 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
420 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
421 Mockito.when(resultSet.next()).thenReturn(true);
423 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
425 reportSchedule.setSchedEnabled("N");
426 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE AND [test] ORDER BY");
428 reportSchedule.persistScheduleData(connection, httpServletRequest);
432 public void testPersistScheduleData_FormFieldList_case2() throws Exception {
433 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
434 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)])";
435 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)])";
436 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'))";
437 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
439 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
440 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
441 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
442 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
443 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
444 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
445 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
446 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
447 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
448 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
450 FormFieldList formFieldList = new FormFieldList();
451 formFieldList.setComment("test");
452 FormFieldType formFieldType = new FormFieldType();
453 formFieldType.setFieldId("test");
454 formFieldType.setColId("1");
455 formFieldType.setFieldName("test");
456 formFieldType.setFieldType("type");
457 formFieldType.setValidationType("validation");
458 formFieldType.setMandatory("Y");
459 formFieldType.setDefaultValue("test");
460 formFieldType.setGroupFormField(true);
461 formFieldList.getFormField().add(formFieldType);
462 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
463 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("test");
464 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
465 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
466 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
467 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
468 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
469 DataSet ds = Mockito.mock(DataSet.class);
470 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
471 Mockito.when(ds.getRowCount()).thenReturn(1);
472 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
473 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
474 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
475 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
476 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
477 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
478 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
480 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
481 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
482 Mockito.when(resultSet.next()).thenReturn(true);
484 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
486 reportSchedule.setSchedEnabled("N");
487 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [test] ORDER BY");
489 reportSchedule.persistScheduleData(connection, httpServletRequest);
493 public void testPersistScheduleData_FormFieldList_case3() throws Exception {
494 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
495 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)])";
496 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)])";
497 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'))";
498 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
500 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
501 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
502 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
503 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
504 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
505 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
506 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
507 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
508 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
509 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
511 FormFieldList formFieldList = new FormFieldList();
512 formFieldList.setComment("test");
513 FormFieldType formFieldType = new FormFieldType();
514 formFieldType.setFieldId("test");
515 formFieldType.setColId("1");
516 formFieldType.setFieldName("test");
517 formFieldType.setFieldType("type");
518 formFieldType.setValidationType("validation");
519 formFieldType.setMandatory("Y");
520 formFieldType.setDefaultValue("test");
521 formFieldType.setGroupFormField(true);
522 formFieldType.setValidationType(FormField.VT_TIMESTAMP_MIN);
523 formFieldList.getFormField().add(formFieldType);
524 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
525 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
526 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
527 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
528 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
529 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
530 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
531 DataSet ds = Mockito.mock(DataSet.class);
532 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
533 Mockito.when(ds.getRowCount()).thenReturn(1);
534 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
535 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
536 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
537 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
538 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
539 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
540 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
542 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
543 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
544 Mockito.when(resultSet.next()).thenReturn(true);
546 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
548 reportSchedule.setSchedEnabled("N");
549 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [report_id] ORDER BY");
551 reportSchedule.persistScheduleData(connection, httpServletRequest);
555 public void testPersistScheduleData_FormFieldList_case4() throws Exception {
556 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
557 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)])";
558 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)])";
559 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'))";
560 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
562 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
563 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
564 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
565 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
566 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
567 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
568 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
569 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
570 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
571 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
573 FormFieldList formFieldList = new FormFieldList();
574 formFieldList.setComment("test");
575 FormFieldType formFieldType = new FormFieldType();
576 formFieldType.setFieldId("test");
577 formFieldType.setColId("1");
578 formFieldType.setFieldName("test");
579 formFieldType.setFieldType("type");
580 formFieldType.setValidationType("validation");
581 formFieldType.setMandatory("Y");
582 formFieldType.setDefaultValue("test");
583 formFieldType.setGroupFormField(true);
584 formFieldType.setValidationType(FormField.VT_TIMESTAMP_MIN);
585 formFieldList.getFormField().add(formFieldType);
586 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
587 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
588 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
589 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
590 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
591 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
592 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
593 DataSet ds = Mockito.mock(DataSet.class);
594 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
595 Mockito.when(ds.getRowCount()).thenReturn(1);
596 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
597 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
598 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
599 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
600 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
601 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
602 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
604 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
605 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
606 Mockito.when(resultSet.next()).thenReturn(true);
608 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
610 reportSchedule.setSchedEnabled("N");
611 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [report_id] ORDER BY");
613 reportSchedule.persistScheduleData(connection, httpServletRequest);
617 public void testPersistScheduleData_FormFieldList_case5() throws Exception {
618 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
619 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)])";
620 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)])";
621 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'))";
622 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
624 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
625 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
626 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
627 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
628 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
629 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
630 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
631 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
632 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
633 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
635 FormFieldList formFieldList = new FormFieldList();
636 formFieldList.setComment("test");
637 FormFieldType formFieldType = new FormFieldType();
638 formFieldType.setFieldId("test");
639 formFieldType.setColId("1");
640 formFieldType.setFieldName("test");
641 formFieldType.setFieldType("type");
642 formFieldType.setValidationType("validation");
643 formFieldType.setMandatory("Y");
644 formFieldType.setDefaultValue("test");
645 formFieldType.setGroupFormField(true);
646 formFieldType.setValidationType(FormField.VT_TIMESTAMP_SEC);
647 formFieldList.getFormField().add(formFieldType);
648 Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
649 Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
650 ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
651 Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
652 Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
653 Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
654 Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
655 DataSet ds = Mockito.mock(DataSet.class);
656 Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
657 Mockito.when(ds.getRowCount()).thenReturn(1);
658 Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
659 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
660 RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
661 PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
662 Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("TESTDB");
663 Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
664 Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
666 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
667 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
668 Mockito.when(resultSet.next()).thenReturn(true);
670 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
672 reportSchedule.setSchedEnabled("N");
673 reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [test] ORDER BY");
675 reportSchedule.persistScheduleData(connection, httpServletRequest);
680 public void testPersistScheduleData_WithRaptorException() throws Exception {
681 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
682 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)])";
683 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)])";
684 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'))";
685 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
686 String new_schedule_data = "select coalesce(max(schedule_id),0)+1 AS sequence from cr_report_schedule";
687 String persist_cond_sql_set = "update cr_report_schedule set condition_sql = ? where schedule_id = [scheduleId]";
689 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
690 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
691 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
692 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
693 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
694 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
695 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
696 PowerMockito.when(Globals.getPersistCondSqlSet()).thenReturn(persist_cond_sql_update);
698 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
699 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
700 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
701 PowerMockito.when(Globals.getNewScheduleData()).thenReturn(new_schedule_data);
702 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
704 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
705 Mockito.when(preparedStatement.executeUpdate()).thenReturn(1);
706 Mockito.when(resultSet.next()).thenReturn(false);
707 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
710 reportSchedule.setSchedEnabled("N");
711 reportSchedule.setStartDate("10/10/2018");
712 reportSchedule.setEndDate("10/10/2019");
713 reportSchedule.setRunDate("10/10/2019");
714 reportSchedule.setRecurrence("Y");
715 reportSchedule.addEmailToUser("UserID1", "UserName1");
716 reportSchedule.addEmailToRole("roleId1", "roleName1");
717 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]");
719 reportSchedule.persistScheduleData(connection, httpServletRequest);
724 public void testDeleteScheduleData_case1() throws RaptorException {
725 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
726 String delete_schedule_data_users = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
727 String delete_schedule_data_id = "DELETE FROM cr_report_schedule where rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
729 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
730 PowerMockito.when(Globals.getDeleteScheduleDataUsers()).thenReturn(delete_schedule_data_users);
731 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
732 PowerMockito.when(Globals.getDeleteScheduleDataId()).thenReturn(delete_schedule_data_id);
734 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
736 reportSchedule.deleteScheduleData(connection);
740 public void testDeleteScheduleData_case2() throws RaptorException {
741 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
742 String delete_schedule_data_users = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
743 String delete_schedule_data_id = "DELETE FROM cr_report_schedule where rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
745 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
746 PowerMockito.when(Globals.getDeleteScheduleDataUsers()).thenReturn(delete_schedule_data_users);
747 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
748 PowerMockito.when(Globals.getDeleteScheduleDataId()).thenReturn(delete_schedule_data_id);
750 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
752 reportSchedule.deleteScheduleData(connection);
755 @Test(expected=RaptorException.class)
756 public void testDeleteScheduleData_case3() throws RaptorException {
757 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
759 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
760 PowerMockito.when(DbUtils.startTransaction()).thenReturn(null);
761 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
763 PowerMockito.doThrow(new ReportSQLException("Failed to save data...")).when(DbUtils.class);
764 DbUtils.commitTransaction(Mockito.anyObject());
766 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
768 reportSchedule.deleteScheduleData(null);
772 public void testDeleteScheduleData_case4() throws RaptorException {
773 reportSchedule.setReportID("-1");
774 reportSchedule.deleteScheduleData(null);
778 @Test(expected=RuntimeException.class)
779 public void testLoadConditionalSQL_Error_case1() throws Exception {
780 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
782 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
783 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
784 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
785 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(true);
786 Mockito.when(resultSet.next()).thenReturn(false);
788 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
790 ReportSchedule.loadConditionalSQL("scheduleId#123");
794 @Test(expected=RaptorException.class)
795 public void testLoadConditionalSQL_Error_case2() throws Exception {
796 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
797 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
798 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
799 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
800 Mockito.when(Globals.isWeblogicServer()).thenReturn(false);
801 Mockito.when(Globals.isPostgreSQL()).thenReturn(false);
802 Mockito.when(Globals.isMySQL()).thenReturn(true);
804 Mockito.when(resultSet.next()).thenReturn(false);
806 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
808 ReportSchedule.loadConditionalSQL("scheduleId#123");
812 public void testLoadConditionalSQL_Error_case3() throws Exception {
813 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
814 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
815 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
816 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
817 Mockito.when(Globals.isWeblogicServer()).thenReturn(false);
818 Mockito.when(Globals.isPostgreSQL()).thenReturn(false);
819 Mockito.when(Globals.isMySQL()).thenReturn(true);
821 Mockito.when(resultSet.next()).thenReturn(true);
822 Mockito.when(resultSet.getString(1)).thenThrow(new SQLException());
823 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
825 ReportSchedule.loadConditionalSQL("scheduleId#123");
830 public void testAddEmailArrayToUser() {
831 ArrayList<IdNameValue> allSelectedUsers= new ArrayList<>();
832 IdNameValue idNameValue = new IdNameValue();
833 idNameValue.setId("1");
834 idNameValue.setName("test");
835 idNameValue.setReadOnly(true);
836 idNameValue.setDefaultValue(true);
837 allSelectedUsers.add(idNameValue);
838 reportSchedule.addEmailArrayToUser(allSelectedUsers);
839 assertEquals("1",((IdNameValue)reportSchedule.getEmailToUsers().get(0)).getId());
843 public void testRemoveEmailToUser() {
844 reportSchedule.removeEmailToUser("1");
849 public void testAddEmailArrayToRole() {
850 ArrayList<IdNameValue> allSelectedUsers= new ArrayList<>();
851 IdNameValue idNameValue = new IdNameValue();
852 idNameValue.setId("roleID1");
853 idNameValue.setName("roleName1");
854 idNameValue.setReadOnly(true);
855 idNameValue.setDefaultValue(true);
856 allSelectedUsers.add(idNameValue);
857 reportSchedule.addEmailArrayToRole(allSelectedUsers);
858 assertEquals("roleID1",((IdNameValue)reportSchedule.getEmailToRoles().get(0)).getId());
862 public void testRemoveEmailToRole() {
863 reportSchedule.removeEmailToRole("roleID1");
867 public void testIsAttachmentMode() {
868 reportSchedule.setAttachmentMode("Y");
869 assertTrue(reportSchedule.isAttachmentMode());
873 public void testSetConditional() {
874 reportSchedule.setConditional("Y");
875 assertEquals("Y",reportSchedule.getConditional());