summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java454
1 files changed, 425 insertions, 29 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java b/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java
index 40ab05de..3ba80d9f 100644
--- a/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java
+++ b/ecomp-sdk/epsdk-analytics/src/test/java/org/onap/portalsdk/analytics/model/definition/ReportScheduleTest.java
@@ -37,36 +37,56 @@
*/
package org.onap.portalsdk.analytics.model.definition;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
import java.io.FileInputStream;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Vector;
+
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.onap.portalsdk.analytics.error.RaptorException;
import org.onap.portalsdk.analytics.error.ReportSQLException;
+import org.onap.portalsdk.analytics.model.base.IdNameValue;
+import org.onap.portalsdk.analytics.model.runtime.FormField;
+import org.onap.portalsdk.analytics.model.runtime.ReportParamValues;
import org.onap.portalsdk.analytics.model.runtime.ReportRuntime;
import org.onap.portalsdk.analytics.system.AppUtils;
+import org.onap.portalsdk.analytics.system.ConnectionUtils;
import org.onap.portalsdk.analytics.system.DbUtils;
import org.onap.portalsdk.analytics.system.Globals;
import org.onap.portalsdk.analytics.util.AppConstants;
import org.onap.portalsdk.analytics.util.DataSet;
+import org.onap.portalsdk.analytics.util.RemDbInfo;
+import org.onap.portalsdk.analytics.xmlobj.DataColumnType;
+import org.onap.portalsdk.analytics.xmlobj.DataSourceType;
+import org.onap.portalsdk.analytics.xmlobj.FormFieldList;
+import org.onap.portalsdk.analytics.xmlobj.FormFieldType;
import org.owasp.esapi.ESAPI;
import org.owasp.esapi.Encoder;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
+import com.mchange.v2.debug.ThreadNameStackTraceRecorder;
+
@RunWith(PowerMockRunner.class)
-@PrepareForTest({ AppUtils.class, Globals.class, DbUtils.class, AppUtils.class, ESAPI.class})
+@PrepareForTest({ AppUtils.class, Globals.class, DbUtils.class, AppUtils.class, ESAPI.class, ConnectionUtils.class, ReportSchedule.class})
public class ReportScheduleTest {
@@ -116,7 +136,8 @@ public class ReportScheduleTest {
PowerMockito.mockStatic(DbUtils.class);
PowerMockito.mockStatic(AppUtils.class);
PowerMockito.mockStatic(ESAPI.class);
-
+ PowerMockito.mockStatic(ConnectionUtils.class);
+
MockitoAnnotations.initMocks(this);
Mockito.when(httpSession.getAttribute(AppConstants.SI_REPORT_RUNTIME)).thenReturn(reportRuntime);
@@ -166,7 +187,13 @@ public class ReportScheduleTest {
Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyString())).thenReturn("Some Value2");
reportSchedule = new ReportSchedule(REPORT_ID, USER_ID, true, httpServletRequest);
-
+ reportSchedule.setEncryptMode("test");
+ reportSchedule.setEndAMPM("AM");
+ reportSchedule.setEndHour("10");
+ reportSchedule.setEndMin("00");
+ reportSchedule.addZero("0");
+
+
/*
Mockito.when(dataSet1.getString(Mockito.anyInt(), Mockito.anyObject())).thenAnswer(new Answer<String>() {
@@ -345,6 +372,353 @@ public class ReportScheduleTest {
reportSchedule.persistScheduleData(connection, httpServletRequest);
}
+ @Test
+ public void testPersistScheduleData_FormFieldList_case1() throws Exception {
+ String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
+ 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)])";
+ 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)])";
+ 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'))";
+ String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
+
+ PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
+ PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
+ PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
+ PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
+ PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
+ PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
+ PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
+ PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
+
+ FormFieldList formFieldList = new FormFieldList();
+ formFieldList.setComment("test");
+ FormFieldType formFieldType = new FormFieldType();
+ formFieldType.setFieldId("test");
+ formFieldType.setColId("1");
+ formFieldType.setFieldName("test");
+ formFieldType.setFieldType("type");
+ formFieldType.setValidationType("validation");
+ formFieldType.setMandatory("Y");
+ formFieldType.setDefaultValue("test");
+ formFieldType.setGroupFormField(true);
+ formFieldList.getFormField().add(formFieldType);
+ Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
+ Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("test");
+ ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
+ Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(true);
+ Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
+ Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
+ DataSet ds = Mockito.mock(DataSet.class);
+ Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
+ Mockito.when(ds.getRowCount()).thenReturn(1);
+ Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
+ Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
+ Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("");
+
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
+ Mockito.when(resultSet.next()).thenReturn(true);
+
+ Mockito.when(dataSet1.getRowCount()).thenReturn(0);
+
+ reportSchedule.setSchedEnabled("N");
+ reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE AND [test] ORDER BY");
+
+ reportSchedule.persistScheduleData(connection, httpServletRequest);
+ }
+
+ @Test
+ public void testPersistScheduleData_FormFieldList_case2() throws Exception {
+ String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
+ 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)])";
+ 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)])";
+ 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'))";
+ String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
+
+ PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
+ PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
+ PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
+ PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
+ PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
+ PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
+ PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
+ PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
+
+ FormFieldList formFieldList = new FormFieldList();
+ formFieldList.setComment("test");
+ FormFieldType formFieldType = new FormFieldType();
+ formFieldType.setFieldId("test");
+ formFieldType.setColId("1");
+ formFieldType.setFieldName("test");
+ formFieldType.setFieldType("type");
+ formFieldType.setValidationType("validation");
+ formFieldType.setMandatory("Y");
+ formFieldType.setDefaultValue("test");
+ formFieldType.setGroupFormField(true);
+ formFieldList.getFormField().add(formFieldType);
+ Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
+ Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("test");
+ ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
+ Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
+ Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
+ Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
+ Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
+ DataSet ds = Mockito.mock(DataSet.class);
+ Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
+ Mockito.when(ds.getRowCount()).thenReturn(1);
+ Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
+ Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
+ RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
+ PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
+ Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
+ Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
+ Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
+
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
+ Mockito.when(resultSet.next()).thenReturn(true);
+
+ Mockito.when(dataSet1.getRowCount()).thenReturn(0);
+
+ reportSchedule.setSchedEnabled("N");
+ reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [test] ORDER BY");
+
+ reportSchedule.persistScheduleData(connection, httpServletRequest);
+ }
+
+ @Test
+ public void testPersistScheduleData_FormFieldList_case3() throws Exception {
+ String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
+ 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)])";
+ 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)])";
+ 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'))";
+ String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
+
+ PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
+ PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
+ PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
+ PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
+ PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
+ PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
+ PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
+ PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
+
+ FormFieldList formFieldList = new FormFieldList();
+ formFieldList.setComment("test");
+ FormFieldType formFieldType = new FormFieldType();
+ formFieldType.setFieldId("test");
+ formFieldType.setColId("1");
+ formFieldType.setFieldName("test");
+ formFieldType.setFieldType("type");
+ formFieldType.setValidationType("validation");
+ formFieldType.setMandatory("Y");
+ formFieldType.setDefaultValue("test");
+ formFieldType.setGroupFormField(true);
+ formFieldType.setValidationType(FormField.VT_TIMESTAMP_MIN);
+ formFieldList.getFormField().add(formFieldType);
+ Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
+ Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
+ ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
+ Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
+ Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
+ Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
+ Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
+ DataSet ds = Mockito.mock(DataSet.class);
+ Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
+ Mockito.when(ds.getRowCount()).thenReturn(1);
+ Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
+ Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
+ RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
+ PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
+ Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
+ Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
+ Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
+
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
+ Mockito.when(resultSet.next()).thenReturn(true);
+
+ Mockito.when(dataSet1.getRowCount()).thenReturn(0);
+
+ reportSchedule.setSchedEnabled("N");
+ reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [report_id] ORDER BY");
+
+ reportSchedule.persistScheduleData(connection, httpServletRequest);
+ }
+
+ @Test
+ public void testPersistScheduleData_FormFieldList_case4() throws Exception {
+ String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
+ 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)])";
+ 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)])";
+ 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'))";
+ String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
+
+ PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
+ PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
+ PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
+ PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
+ PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
+ PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
+ PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
+ PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
+
+ FormFieldList formFieldList = new FormFieldList();
+ formFieldList.setComment("test");
+ FormFieldType formFieldType = new FormFieldType();
+ formFieldType.setFieldId("test");
+ formFieldType.setColId("1");
+ formFieldType.setFieldName("test");
+ formFieldType.setFieldType("type");
+ formFieldType.setValidationType("validation");
+ formFieldType.setMandatory("Y");
+ formFieldType.setDefaultValue("test");
+ formFieldType.setGroupFormField(true);
+ formFieldType.setValidationType(FormField.VT_TIMESTAMP_MIN);
+ formFieldList.getFormField().add(formFieldType);
+ Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
+ Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
+ ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
+ Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
+ Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
+ Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
+ Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
+ DataSet ds = Mockito.mock(DataSet.class);
+ Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
+ Mockito.when(ds.getRowCount()).thenReturn(1);
+ Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
+ Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
+ RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
+ PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
+ Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("DAYTONA");
+ Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
+ Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
+
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
+ Mockito.when(resultSet.next()).thenReturn(true);
+
+ Mockito.when(dataSet1.getRowCount()).thenReturn(0);
+
+ reportSchedule.setSchedEnabled("N");
+ reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [report_id] ORDER BY");
+
+ reportSchedule.persistScheduleData(connection, httpServletRequest);
+ }
+
+ @Test
+ public void testPersistScheduleData_FormFieldList_case5() throws Exception {
+ String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
+ 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)])";
+ 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)])";
+ 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'))";
+ String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
+
+ PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
+ PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
+ PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
+ PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
+ PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
+ PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
+ PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
+ PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
+
+ FormFieldList formFieldList = new FormFieldList();
+ formFieldList.setComment("test");
+ FormFieldType formFieldType = new FormFieldType();
+ formFieldType.setFieldId("test");
+ formFieldType.setColId("1");
+ formFieldType.setFieldName("test");
+ formFieldType.setFieldType("type");
+ formFieldType.setValidationType("validation");
+ formFieldType.setMandatory("Y");
+ formFieldType.setDefaultValue("test");
+ formFieldType.setGroupFormField(true);
+ formFieldType.setValidationType(FormField.VT_TIMESTAMP_SEC);
+ formFieldList.getFormField().add(formFieldType);
+ Mockito.when(reportRuntime.getFormFieldList()).thenReturn(formFieldList);
+ Mockito.when(reportRuntime.getFormFieldDisplayName(Mockito.any(FormFieldType.class))).thenReturn("report_id");
+ ReportParamValues paramValues = PowerMockito.mock(ReportParamValues.class);
+ Mockito.when(paramValues.isParameterMultiValue(Matchers.anyString())).thenReturn(false);
+ Mockito.when(paramValues.isParameterTextAreaValueAndModified(Mockito.any(String.class))).thenReturn(true);
+ Mockito.when(paramValues.getParamValue(Mockito.any(String.class))).thenReturn("select test");
+ Mockito.when(reportRuntime.getReportParamValues()).thenReturn(paramValues);
+ DataSet ds = Mockito.mock(DataSet.class);
+ Mockito.when(ConnectionUtils.getDataSet(Mockito.any(String.class), Mockito.any(String.class))).thenReturn(ds);
+ Mockito.when(ds.getRowCount()).thenReturn(1);
+ Mockito.when(ds.getString(Mockito.anyInt(), Mockito.anyInt())).thenReturn("test");
+ Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
+ RemDbInfo remDbInfo = Mockito.mock(RemDbInfo.class);
+ PowerMockito.whenNew(RemDbInfo.class).withNoArguments().thenReturn(remDbInfo);
+ Mockito.when(remDbInfo.getDBType(Mockito.any(String.class))).thenReturn("TESTDB");
+ Mockito.when(reportRuntime.formatListValue(Mockito.any(String.class), Mockito.any(String.class), Mockito.any(DataColumnType.class),
+ Mockito.anyBoolean(), Mockito.anyBoolean(), Mockito.any(DataSourceType.class), Mockito.any(String.class))).thenReturn("test");
+
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
+ Mockito.when(resultSet.next()).thenReturn(true);
+
+ Mockito.when(dataSet1.getRowCount()).thenReturn(0);
+
+ reportSchedule.setSchedEnabled("N");
+ reportSchedule.setConditionSQL("SELECT WHEN FROM TABLE WHERE [test] ORDER BY");
+
+ reportSchedule.persistScheduleData(connection, httpServletRequest);
+ }
+
+
+ @Test
+ public void testPersistScheduleData_WithRaptorException() throws Exception {
+ String execute_update = "DELETE FROM cr_report_schedule_users WHERE rep_id = [reportID] and schedule_id = [getScheduleID()]";
+ 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)])";
+ 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)])";
+ 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'))";
+ String persist_cond_sql_update = "update cr_report_schedule set condition_large_sql = '' where schedule_id = [scheduleId]";
+ String new_schedule_data = "select coalesce(max(schedule_id),0)+1 AS sequence from cr_report_schedule";
+ String persist_cond_sql_set = "update cr_report_schedule set condition_sql = ? where schedule_id = [scheduleId]";
+
+ PowerMockito.when(DbUtils.executeQuery(Mockito.anyObject(), Mockito.anyString())).thenReturn(dataSet1);
+ PowerMockito.when(Globals.getExecuteUpdate()).thenReturn(execute_update);
+ PowerMockito.when(Globals.getExecuteUpdateUsers()).thenReturn(execute_update_users);
+ PowerMockito.when(Globals.getExecuteUpdateRoles()).thenReturn(execute_update_roles);
+ PowerMockito.when(Globals.getExecuteUpdateActivity()).thenReturn(execute_update_activity);
+ PowerMockito.when(Globals.getPersistCondSqlUpdate()).thenReturn(persist_cond_sql_update);
+ PowerMockito.when(Globals.isPostgreSQL()).thenReturn(true);
+ PowerMockito.when(Globals.getPersistCondSqlSet()).thenReturn(persist_cond_sql_update);
+
+ PowerMockito.when(Globals.getRequestParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParams()).thenReturn("1, 2, 3");
+ PowerMockito.when(Globals.getSessionParamsForScheduling()).thenReturn("login_id");
+ PowerMockito.when(Globals.getNewScheduleData()).thenReturn(new_schedule_data);
+ Mockito.when(reportRuntime.getDBInfo()).thenReturn(AppConstants.DB_DEV);
+
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeUpdate()).thenReturn(1);
+ Mockito.when(resultSet.next()).thenReturn(false);
+ Mockito.when(dataSet1.getRowCount()).thenReturn(0);
+
+
+ reportSchedule.setSchedEnabled("N");
+ reportSchedule.setStartDate("10/10/2018");
+ reportSchedule.setEndDate("10/10/2019");
+ reportSchedule.setRunDate("10/10/2019");
+ reportSchedule.setRecurrence("Y");
+ reportSchedule.addEmailToUser("UserID1", "UserName1");
+ reportSchedule.addEmailToRole("roleId1", "roleName1");
+ 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]");
+
+ reportSchedule.persistScheduleData(connection, httpServletRequest);
+ }
+
@Test
public void testDeleteScheduleData_case1() throws RaptorException {
@@ -416,10 +790,9 @@ public class ReportScheduleTest {
ReportSchedule.loadConditionalSQL("scheduleId#123");
}
- /*
- @Test
- public void testLoadConditionalSQL_Error_case2() throws Exception {
+ @Test(expected=RaptorException.class)
+ public void testLoadConditionalSQL_Error_case2() throws Exception {
String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
Mockito.when(DbUtils.getConnection()).thenReturn(connection);
Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
@@ -433,50 +806,73 @@ public class ReportScheduleTest {
PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
ReportSchedule.loadConditionalSQL("scheduleId#123");
- }*/
-
+ }
- /*
+ @Test
+ public void testLoadConditionalSQL_Error_case3() throws Exception {
+ String load_cond_sql = "SELECT condition_large_sql FROM cr_report_schedule WHERE schedule_id=?";
+ Mockito.when(DbUtils.getConnection()).thenReturn(connection);
+ Mockito.when(connection.prepareStatement(Mockito.anyString())).thenReturn(preparedStatement);
+ Mockito.when(preparedStatement.executeQuery()).thenReturn(resultSet);
+ Mockito.when(Globals.isWeblogicServer()).thenReturn(false);
+ Mockito.when(Globals.isPostgreSQL()).thenReturn(false);
+ Mockito.when(Globals.isMySQL()).thenReturn(true);
+
+ Mockito.when(resultSet.next()).thenReturn(true);
+ Mockito.when(resultSet.getString(1)).thenThrow(new SQLException());
+ PowerMockito.when(Globals.getLoadCondSql()).thenReturn(load_cond_sql);
+
+ ReportSchedule.loadConditionalSQL("scheduleId#123");
+ }
+
@Test
public void testAddEmailArrayToUser() {
- fail("Not yet implemented");
+ ArrayList<IdNameValue> allSelectedUsers= new ArrayList<>();
+ IdNameValue idNameValue = new IdNameValue();
+ idNameValue.setId("1");
+ idNameValue.setName("test");
+ idNameValue.setReadOnly(true);
+ idNameValue.setDefaultValue(true);
+ allSelectedUsers.add(idNameValue);
+ reportSchedule.addEmailArrayToUser(allSelectedUsers);
+ assertEquals("1",((IdNameValue)reportSchedule.getEmailToUsers().get(0)).getId());
}
@Test
public void testRemoveEmailToUser() {
- fail("Not yet implemented");
+ reportSchedule.removeEmailToUser("1");
}
- @Test
- public void testAddEmailToRole() {
- fail("Not yet implemented");
- }
@Test
public void testAddEmailArrayToRole() {
- fail("Not yet implemented");
+ ArrayList<IdNameValue> allSelectedUsers= new ArrayList<>();
+ IdNameValue idNameValue = new IdNameValue();
+ idNameValue.setId("roleID1");
+ idNameValue.setName("roleName1");
+ idNameValue.setReadOnly(true);
+ idNameValue.setDefaultValue(true);
+ allSelectedUsers.add(idNameValue);
+ reportSchedule.addEmailArrayToRole(allSelectedUsers);
+ assertEquals("roleID1",((IdNameValue)reportSchedule.getEmailToRoles().get(0)).getId());
}
-
+
@Test
public void testRemoveEmailToRole() {
- fail("Not yet implemented");
+ reportSchedule.removeEmailToRole("roleID1");
}
@Test
- public void testPersistScheduleData() {
- fail("Not yet implemented");
+ public void testIsAttachmentMode() {
+ reportSchedule.setAttachmentMode("Y");
+ assertTrue(reportSchedule.isAttachmentMode());
}
@Test
- public void testDeleteScheduleData() {
- fail("Not yet implemented");
+ public void testSetConditional() {
+ reportSchedule.setConditional("Y");
+ assertEquals("Y",reportSchedule.getConditional());
}
-
- @Test
- public void testLoadConditionalSQL() {
- fail("Not yet implemented");
- }
- */
-
+
}