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 java.io.FileInputStream;
41 import java.io.InputStream;
42 import java.sql.Connection;
43 import java.sql.PreparedStatement;
44 import java.sql.ResultSet;
45 import javax.servlet.http.HttpServletRequest;
46 import javax.servlet.http.HttpSession;
47 import org.apache.commons.io.IOUtils;
48 import org.junit.Before;
49 import org.junit.Test;
50 import org.junit.runner.RunWith;
51 import org.mockito.Mock;
52 import org.mockito.Mockito;
53 import org.mockito.MockitoAnnotations;
54 import org.onap.portalsdk.analytics.error.RaptorException;
55 import org.onap.portalsdk.analytics.error.ReportSQLException;
56 import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
57 import org.onap.portalsdk.analytics.system.AppUtils;
58 import org.onap.portalsdk.analytics.system.DbUtils;
59 import org.onap.portalsdk.analytics.system.Globals;
60 import org.onap.portalsdk.analytics.util.AppConstants;
61 import org.onap.portalsdk.analytics.util.DataSet;
62 import org.owasp.esapi.ESAPI;
63 import org.owasp.esapi.Encoder;
64 import org.powermock.api.mockito.PowerMockito;
65 import org.powermock.core.classloader.annotations.PrepareForTest;
66 import org.powermock.modules.junit4.PowerMockRunner;
68 @RunWith(PowerMockRunner.class)
69 @PrepareForTest({ AppUtils.class, Globals.class, DbUtils.class, AppUtils.class, ESAPI.class})
71 public class ReportScheduleTest {
73 ReportSchedule reportSchedule;
75 private String REPORT_ID="1000";
76 private String USER_ID="USER#1";
79 HttpServletRequest httpServletRequest;
82 HttpSession httpSession;
85 ReportRuntime reportRuntime;
88 ReportDefinition reportDefinition;
97 Connection connection;
100 PreparedStatement preparedStatement;
109 FileInputStream fileInputStream;
112 public void setUp() throws Exception {
114 PowerMockito.mockStatic(Globals.class);
115 PowerMockito.mockStatic(AppUtils.class);
116 PowerMockito.mockStatic(DbUtils.class);
117 PowerMockito.mockStatic(AppUtils.class);
118 PowerMockito.mockStatic(ESAPI.class);
120 MockitoAnnotations.initMocks(this);
122 Mockito.when(httpSession.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(reportRuntime);
123 Mockito.when(httpServletRequest.getSession()).thenReturn(httpSession);
125 Mockito.when(reportRuntime.getReportID()).thenReturn(REPORT_ID);
126 Mockito.when(AppUtils.getUserID(httpServletRequest)).thenReturn("USER1");
128 PowerMockito.when(ESAPI.encoder()).thenReturn(encoder);
130 createInstanceOfReportSchedule_case1();
131 createInstanceOfReportSchedule_case2();
135 private void createInstanceOfReportSchedule_case1() throws Exception {
136 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]";
137 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";
138 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";
140 PowerMockito.when(Globals.getLoadScheduleData()).thenReturn(load_schedule_data);
141 PowerMockito.when(Globals.getLoadScheduleGetId()).thenReturn(load_schedule_getid);
142 PowerMockito.when(Globals.getLoadScheduleUsers()).thenReturn(load_schedule_users);
143 PowerMockito.when(AppUtils.isAdminUser(httpServletRequest)).thenReturn(true);
144 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(true);
146 //reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, false, httpServletRequest);
147 //String dataArray[] = {"Y", "10/10/2018", "10/10/2999", "01/11/2018", "9", "10", "AM", "Y", "Y", "0", "512","", "2000", "10", "30", "PM," };
149 PowerMockito.when(DbUtils.getConnection()).thenReturn(connection);
151 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
152 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
153 Mockito.when(resultSet.next()).thenReturn(true);
154 Mockito.when(resultSet.getClob(Mockito.anyInt())).thenReturn(clob);
156 String source = "This is the source of my input stream";
157 InputStream inputStream = IOUtils.toInputStream(source, "UTF-8");
159 Mockito.when(clob.getAsciiStream()).thenReturn(inputStream);
162 PowerMockito.when(DbUtils.executeQuery(Mockito.anyString())).thenReturn(dataSet1);
163 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
165 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("Some Value1");
166 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
168 reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, true, httpServletRequest);
172 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
175 public String answer(InvocationOnMock invocation) throws Throwable {
176 Object args[] = invocation.getArguments();
180 columnIndex = Integer.parseInt((String)args[1]);
181 } catch (Exception e) {
182 if ("encrypt_yn".equals((String)args[1]))
192 private void createInstanceOfReportSchedule_case2() throws Exception {
193 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]";
194 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";
195 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";
197 String new_schedule_data = "select coalesce(max(schedule_id),0)+1 AS sequence from cr_report_schedule";
199 PowerMockito.when(Globals.getLoadScheduleData()).thenReturn(load_schedule_data);
200 PowerMockito.when(Globals.getLoadScheduleGetId()).thenReturn(load_schedule_getid);
201 PowerMockito.when(Globals.getLoadScheduleUsers()).thenReturn(load_schedule_users);
202 PowerMockito.when(AppUtils.isAdminUser(httpServletRequest)).thenReturn(false);
203 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(false);
204 PowerMockito.when(Globals.getNewScheduleData()).thenReturn(new_schedule_data);
205 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(false);
207 PowerMockito.when(Globals.getUseLoginIdInSchedYN()).thenReturn("Y");
209 //reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, false, httpServletRequest);
210 //String dataArray[] = {"Y", "10/10/2018", "10/10/2999", "01/11/2018", "9", "10", "AM", "Y", "Y", "0", "512","", "2000", "10", "30", "PM," };
212 PowerMockito.when(DbUtils.getConnection()).thenReturn(connection);
214 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
215 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
216 Mockito.when(resultSet.next()).thenReturn(true);
217 Mockito.when(resultSet.getClob(Mockito.anyInt())).thenReturn(clob);
219 String source = "This is the source of my input stream";
220 InputStream inputStream = IOUtils.toInputStream(source, "UTF-8");
222 Mockito.when(clob.getAsciiStream()).thenReturn(inputStream);
225 PowerMockito.when(DbUtils.executeQuery(Mockito.anyString())).thenReturn(dataSet1);
226 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
228 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("Some Value1");
229 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
231 reportSchedule = new ReportSchedule(REPORT_ID, "SCHDULE_ID", USER_ID, httpServletRequest);
234 Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
237 public String answer(InvocationOnMock invocation) throws Throwable {
238 Object args[] = invocation.getArguments();
242 columnIndex = Integer.parseInt((String)args[1]);
243 } catch (Exception e) {
244 if ("encrypt_yn".equals((String)args[1]))
257 public void testAddEmailToUser() {
258 reportSchedule.addEmailToUser("UserID1", "UserName1");
259 reportSchedule.addEmailToUser("UserID2", "UserName2");
260 reportSchedule.addEmailToUser("UserID2", "UserName2");
265 public void testPersistScheduleData_case1() throws Exception {
266 reportSchedule.persistScheduleData(connection, httpServletRequest);
270 public void testPersistScheduleData_RowCount_case1() throws Exception {
271 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
272 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)])";
273 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)])";
274 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'))";
275 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
277 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
278 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
279 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
280 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
281 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
282 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
283 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
285 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
286 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
287 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
289 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_LOCAL);
291 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
292 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
293 Mockito.when(resultSet.next()).thenReturn(true);
295 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
297 reportSchedule.setDownloadLimit("1000");
298 reportSchedule.setSchedEnabled("N");
299 reportSchedule.setFormFields("Field1");
300 reportSchedule.setNotify_type("1");
301 reportSchedule.setStartDate("10/10/2018");
302 reportSchedule.setEndDate("10/10/2019");
303 reportSchedule.setRunDate("10/10/2019");
304 reportSchedule.setRunHour("10");
305 reportSchedule.setRunMin("10");
306 reportSchedule.setRunAMPM("PM");
307 reportSchedule.setRecurrence("Y");
308 reportSchedule.setAttachmentMode("N");
309 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]");
311 reportSchedule.persistScheduleData(connection, httpServletRequest);
315 public void testPersistScheduleData_RowCount_case2() throws Exception {
316 String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
317 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)])";
318 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)])";
319 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'))";
320 String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
322 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
323 PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
324 PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
325 PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
326 PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
327 PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
328 PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
330 PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
331 PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
332 PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
334 Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
336 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
337 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
338 Mockito.when(resultSet.next()).thenReturn(true);
340 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
342 reportSchedule.setSchedEnabled("N");
343 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]");
345 reportSchedule.persistScheduleData(connection, httpServletRequest);
350 public void testDeleteScheduleData_case1() throws RaptorException {
351 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
352 String delete_schedule_data_users = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
353 String delete_schedule_data_id = "DELETE FROM cr_report_schedule where rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
355 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
356 PowerMockito.when(Globals.getDeleteScheduleDataUsers()).thenReturn(delete_schedule_data_users);
357 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
358 PowerMockito.when(Globals.getDeleteScheduleDataId()).thenReturn(delete_schedule_data_id);
360 Mockito.when(dataSet1.getRowCount()).thenReturn(1);
362 reportSchedule.deleteScheduleData(connection);
366 public void testDeleteScheduleData_case2() throws RaptorException {
367 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
368 String delete_schedule_data_users = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
369 String delete_schedule_data_id = "DELETE FROM cr_report_schedule where rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
371 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
372 PowerMockito.when(Globals.getDeleteScheduleDataUsers()).thenReturn(delete_schedule_data_users);
373 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
374 PowerMockito.when(Globals.getDeleteScheduleDataId()).thenReturn(delete_schedule_data_id);
376 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
378 reportSchedule.deleteScheduleData(connection);
381 @Test(expected=RaptorException.class)
382 public void testDeleteScheduleData_case3() throws RaptorException {
383 String delete_schedule_data = "SELECT 1 FROM cr_report_schedule WHERE rep_id = [reportID] and sched_user_id = [getScheduleUserID()] and schedule_id = [getScheduleID()]";
385 PowerMockito.when(Globals.getDeleteScheduleData()).thenReturn(delete_schedule_data);
386 PowerMockito.when(DbUtils.startTransaction()).thenReturn(null);
387 PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
389 PowerMockito.doThrow(new ReportSQLException("Failed to save data...")).when(DbUtils.class);
390 DbUtils.commitTransaction(Mockito.anyObject());
392 Mockito.when(dataSet1.getRowCount()).thenReturn(0);
394 reportSchedule.deleteScheduleData(null);
398 public void testDeleteScheduleData_case4() throws RaptorException {
399 reportSchedule.setReportID("-1");
400 reportSchedule.deleteScheduleData(null);
404 @Test(expected=RuntimeException.class)
405 public void testLoadConditionalSQL_Error_case1() throws Exception {
406 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
408 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
409 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
410 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
411 PowerMockito.when(Globals.isWeblogicServer()).thenReturn(true);
412 Mockito.when(resultSet.next()).thenReturn(false);
414 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
416 ReportSchedule.loadConditionalSQL("scheduleId#123");
421 public void testLoadConditionalSQL_Error_case2() throws Exception {
423 String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
424 Mockito.when(DbUtils.getConnection()).thenReturn(connection);
425 Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
426 Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
427 Mockito.when(Globals.isWeblogicServer()).thenReturn(false);
428 Mockito.when(Globals.isPostgreSQL()).thenReturn(false);
429 Mockito.when(Globals.isMySQL()).thenReturn(true);
431 Mockito.when(resultSet.next()).thenReturn(false);
433 PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
435 ReportSchedule.loadConditionalSQL("scheduleId#123");
442 public void testAddEmailArrayToUser() {
443 fail("Not yet implemented");
447 public void testRemoveEmailToUser() {
448 fail("Not yet implemented");
452 public void testAddEmailToRole() {
453 fail("Not yet implemented");
457 public void testAddEmailArrayToRole() {
458 fail("Not yet implemented");
462 public void testRemoveEmailToRole() {
463 fail("Not yet implemented");
467 public void testPersistScheduleData() {
468 fail("Not yet implemented");
472 public void testDeleteScheduleData() {
473 fail("Not yet implemented");
477 public void testLoadConditionalSQL() {
478 fail("Not yet implemented");