diff options
author | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2016-03-22 15:54:02 +0300 |
---|---|---|
committer | AlexKlimenkov <shurick.klimenkov@gmail.com> | 2016-03-22 15:54:02 +0300 |
commit | 212fd89925d606aec583e83cdbeaeb5b78ff522e (patch) | |
tree | 7440145874812ae9cc06f7f46508a0c9071350c3 | |
parent | 0bcea2320e4235e6cfc0bcf65b917e45845bd5fe (diff) | |
parent | ea6f9c81b2149a27a50cb0c217e1bf92f24aa05c (diff) | |
download | scheduler-helper-php-212fd89925d606aec583e83cdbeaeb5b78ff522e.zip scheduler-helper-php-212fd89925d606aec583e83cdbeaeb5b78ff522e.tar.gz scheduler-helper-php-212fd89925d606aec583e83cdbeaeb5b78ff522e.tar.bz2 |
Merge pull request #19 from mperednya/helperTests
Fixes with getData/saveData methods, add unit tests
33 files changed, 2742 insertions, 17 deletions
diff --git a/RecurringType.php b/RecurringType.php index 96b062b..9b88c44 100644 --- a/RecurringType.php +++ b/RecurringType.php @@ -32,6 +32,8 @@ class RecurringType { private $_fields_values = array(); private $_recurring_start_date_stamp; private $_recurring_end_date_stamp; + + public static $start_on_monday = true; public function __construct($recurringType, $recurringStartDateStamp, $recurringEndDateStamp) { @@ -112,9 +114,14 @@ class RecurringType { case $dataFields[self::FLD_WEEK_DAYS_LIST]: $weekDaysToRecurring = explode(",", $value); $days = array(); + $repeatVal = str_replace(" ", "", $dataArray[$dataFields[self::FLD_REC_TYPE]]); + if($repeatVal == "year"){ + $daysOfWeek["sunday"] = 7; + } + foreach($weekDaysToRecurring as $day) { $day = str_replace(" ", "", $day); - if(!in_array($day, $daysOfWeek)) + if(!isset($daysOfWeek[$day])) throw new Exception("Field {$field} will contains data like 'monday,tuesday,wednesday'."); array_push($days, $daysOfWeek[$day]); @@ -246,21 +253,26 @@ class RecurringType { return $recurringInterval; //Correct start date interval if it smaller then recurring start date. - if ($intervalStartDateStamp < $recurringStartDateStamp) + if ($intervalStartDateStamp < $recurringStartDateStamp) { $intervalStartDateStamp = $recurringStartDateStamp; + $recurringInterval["start_date_stamp"] = $intervalStartDateStamp; + } //Correct end date interval if it smaller then recurring end date. - if ($intervalEndDateStamp > $recurringEndDateStamp) + if ($intervalEndDateStamp > $recurringEndDateStamp){ $intervalEndDateStamp = $recurringEndDateStamp; + $recurringInterval["end_date_stamp"] = $intervalEndDateStamp; + } $type = $this->getRecurringTypeValue(); //If recurring type is "year" then exit, else add months. if ($type == self::REC_TYPE_DAY || $type == self::REC_TYPE_WEEK) { - $step = $this->_transpose_size[$type] * $this->getRecurringTypeStepValue(); - $day = 24 * 60 * 60; - $delta = floor(($intervalStartDateStamp - $recurringStartDateStamp) / ($day * $step)); - if ($delta > 0) + if($recurringStartDateStamp < $intervalStartDateStamp) { + $step = $this->_transpose_size[$type] * $this->getRecurringTypeStepValue(); + $day = 24 * 60 * 60; + $delta = floor(($intervalStartDateStamp - $recurringStartDateStamp) / ($day * $step)) || 1; $recurringInterval["start_date_stamp"] = $recurringStartDateStamp + $delta * $step * $day; + } } else { $differenceStartDates = SchedulerHelperDate::differenceBetweenDates($intervalStartDateStamp, $recurringStartDateStamp); @@ -294,17 +306,21 @@ class RecurringType { private function _getRecurringDayStep($dateStamp, $recurringWeekDay) { $weekDay = SchedulerHelperDate::getDayOfWeek($dateStamp); + if(self::$start_on_monday) { + $recurringWeekDay = $recurringWeekDay == 0 ? 7 : $recurringWeekDay; + } $dayStep = $recurringWeekDay - $weekDay; - $dayStep = ($dayStep < 0) ? (SchedulerHelperDate::DAYS_IN_WEEK - (-$dayStep)) : $dayStep; return $dayStep; } /** * Get recurring days for date. * @param $dateStamp + * @param $start + * $param $end * @return array */ - private function _getRecurringDays($dateStamp) + private function _getRecurringDays($dateStamp, $start = NULL, $end = NULL) { $recurringDays = array(); @@ -314,18 +330,24 @@ class RecurringType { $daysCount = count($recurringWeekDays); for($i = 0; $i < $daysCount; $i++) { $dayStep = $this->_getRecurringDayStep($dateStamp, $recurringWeekDays[$i]); - array_push($recurringDays, SchedulerHelperDate::addDays($dateStamp, $dayStep)); + $stamp = SchedulerHelperDate::addDays($dateStamp, $dayStep); + if((!$start || $stamp >= $start) && (!$end|| $stamp < $end)) + array_push($recurringDays, $stamp); } } //Else if recurring type has day of week and step for it, then get this day. elseif($this->getWeekDayValue() && $this->getWeekNumberValue()) { $dayStep = $this->_getRecurringDayStep($dateStamp, $this->getWeekDayValue()); $dayStep += (SchedulerHelperDate::DAYS_IN_WEEK * ($this->getWeekNumberValue() - 1)); - array_push($recurringDays, SchedulerHelperDate::addDays($dateStamp, $dayStep)); + $stamp = SchedulerHelperDate::addDays($dateStamp, $dayStep); + if((!$start || $stamp >= $start) && (!$end|| $stamp < $end)) + array_push($recurringDays, $stamp); } //Else return recurring date without change. - else - array_push($recurringDays, $dateStamp); + else { + if((!$start || $dateStamp >= $start) && (!$end|| $dateStamp < $end)) + array_push($recurringDays, $dateStamp); + } return $recurringDays; } @@ -351,6 +373,8 @@ class RecurringType { $intervalEndDateStamp = $correctedInterval["end_date_stamp"]; $currentRecurringStartDateStamp = $intervalStartDateStamp; $recurringDates = array(); + $recurringStartDateStamp = $this->_recurring_start_date_stamp; + $recurringEndDateStamp = $this->_recurring_end_date_stamp; //Generate dates wile next recurring date belongs to interval. $countRecurringCycles = 0; @@ -362,7 +386,7 @@ class RecurringType { ) ) { $countRecurringCycles++; - $recurringDays = $this->_getRecurringDays($currentRecurringStartDateStamp); + $recurringDays = $this->_getRecurringDays($currentRecurringStartDateStamp, $recurringStartDateStamp, $recurringEndDateStamp); $recurringDates = array_merge($recurringDates, $recurringDays); switch($recType) { @@ -407,7 +431,7 @@ class RecurringType { $maxEndDateStamp = NULL; foreach($recurringStartDatesStamps as $startDateStamp) { - $endDateStamp = $startDateStamp + $eventLength; + $endDateStamp = $startDateStamp; $maxEndDateStamp = ($endDateStamp > $maxEndDateStamp) ? $endDateStamp : $maxEndDateStamp; } diff --git a/SchedulerHelper.php b/SchedulerHelper.php index ef1dcec..4fe93e0 100755 --- a/SchedulerHelper.php +++ b/SchedulerHelper.php @@ -32,7 +32,8 @@ abstract class DHelper extends SchedulerHelperConnector public $config = array( "debug" => true, - "server_date" => false + "server_date" => false, + "start_on_monay" => true ); protected $_mapped_fields = array(); @@ -365,6 +366,7 @@ class Helper extends DHelper implements IHelper $startField = $this->getStartDateFieldName(); $endField = $this->getEndDateFieldName(); + RecurringType::$start_on_monday = $this->config["start_on_monay"]; $recCount = count($recurringEvents); for($i = 0; $i < $recCount; $i++) { $eventData = $recurringEvents[$i]; @@ -396,7 +398,7 @@ class Helper extends DHelper implements IHelper $fullEventData = $eventData["full_event_data"]; $recurringStartDateStamp = $this->getDateTimestamp($fullEventData[$startField]); $recurringEndDateStamp = $this->getDateTimestamp($fullEventData[$endField]); - if($recurringStartDateStamp <= $intervalEndDateStamp && $recurringEndDateStamp >= $intervalStartDateStamp) { + if($recurringStartDateStamp < $intervalEndDateStamp && $recurringEndDateStamp > $intervalStartDateStamp) { array_push($resultData, $eventData["filtered_event_data"]); } } @@ -118,6 +118,19 @@ To get data of the recurring events, use the method 'getData([$startDateStr], [$ //); ``` +#####Tests + +In order to run tests: + +1. Install PHPUnit following this instruction https://phpunit.de/manual/current/en/installation.html + +2. Configure DB settings in tests/TestConfig.php + +3. Enter repository folder and execute + +``` + phpunit --bootstrap SchedulerHelper.php tests/SchedulerHelperTest +``` ### License diff --git a/tests/Data_deleteById/CommonEvents/source.json b/tests/Data_deleteById/CommonEvents/source.json new file mode 100644 index 0000000..619f738 --- /dev/null +++ b/tests/Data_deleteById/CommonEvents/source.json @@ -0,0 +1,90 @@ +{ + "insert_data": [ + { + "start_date": "2016-05-04 10:00:00", + "end_date": "2016-05-04 15:00:00", + "text": "Test event 1", + "id": "1", + "event_pid": "", + "event_length": "", + "rec_pattern": "", + "rec_type": "", + "!nativeeditor_status": "" + }, + { + "start_date": "2016-05-10 00:00:00", + "end_date": "2016-05-18 00:00:00", + "text": "Test event 2", + "id": "2", + "event_pid": "", + "event_length": "300", + "rec_pattern": "day_2___", + "rec_type": "day_2___#4", + "!nativeeditor_status": "" + }, + { + "start_date": "2016-05-03 22:40:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Event 3", + "id": "3", + "event_pid": "", + "event_length": "3600", + "rec_pattern": "week_2___0,2,6", + "rec_type": "week_2___0,2,6#no", + "!nativeeditor_status": "" + }, + { + "start_date": "2016-05-02 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Event 4", + "id": "4", + "event_pid": "", + "event_length": "300", + "rec_pattern": "month_1___", + "rec_type": "month_1___#no", + "!nativeeditor_status": "" + }, + { + "start_date": "2016-05-09 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Event 5", + "id": "5", + "event_pid": "", + "event_length": "300", + "rec_pattern": "month_1_5_4_", + "rec_type": "month_1_5_4_#no", + "!nativeeditor_status": "" + }, + { + "start_date": "2016-03-08 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Event 6", + "id": "6", + "event_pid": "", + "event_length": "300", + "rec_pattern": "year_1___", + "rec_type": "year_1___#no", + "!nativeeditor_status": "" + } + ], + "data": [ + { + "id": 1 + }, + { + "id": 2 + }, + { + "id": 3 + }, + { + "id": 4 + }, + { + "id": 5 + }, + { + "id": 6 + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/DayRecurrings/source.json b/tests/Data_getData/DayRecurrings/source.json new file mode 100644 index 0000000..fd59358 --- /dev/null +++ b/tests/Data_getData/DayRecurrings/source.json @@ -0,0 +1,118 @@ +{ + "settings": { + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-03-31 24:00:00" + }, + "data": [ + { + "id": "1", + "start_date": "2016-03-02 10:05:00", + "end_date": "2016-03-05 10:05:00", + "text": "Daily Test 1", + "rec_type": "day_1___#3", + "event_pid": "0", + "event_length": "10500", + "rec_pattern": "day_1___" + }, + { + "id": "2", + "start_date": "2016-03-07 00:00:00", + "end_date": "2016-05-26 00:00:00", + "text": "Daily Test 2 End after ", + "rec_type": "day_2___#40", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "day_2___" + }, + { + "id": "3", + "start_date": "2016-02-10 00:00:00", + "end_date": "2016-03-11 00:00:00", + "text": "Daily Test 3 start before", + "rec_type": "day_3___#10", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "day_3___" + }, + { + "id": "4", + "start_date": "2016-02-23 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Daily Test 4 (work)", + "rec_type": "week_1___1,2,3,4,5#no", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "week_1___1,2,3,4,5" + }, + { + "id": "5", + "start_date": "2016-03-03 01:10:00", + "end_date": "2016-03-31 00:00:00", + "text": "Daily Test 5 (end by)", + "rec_type": "day_6___#", + "event_pid": "", + "event_length": "51600", + "rec_pattern": "day_6___" + }, + { + "id": "6", + "start_date": "2016-03-04 21:30:00", + "end_date": "9999-02-01 00:00:00", + "text": "Daily test 6", + "rec_type": "day_2___#no", + "event_pid": "", + "event_length": "2400", + "rec_pattern": "day_2___" + }, + { + "id": "7", + "start_date": "2016-02-29 23:25:00", + "end_date": "2016-03-01 00:00:00", + "text": "Common event 1", + "rec_type": "", + "event_pid": "", + "event_length": "", + "rec_pattern": "" + }, + { + "id": "8", + "start_date": "2016-03-10 13:30:00", + "end_date": "2016-03-10 17:00:00", + "text": "Common event 2", + "rec_type": "", + "event_pid": "", + "event_length": "", + "rec_pattern": "" + }, + { + "id": "9", + "start_date": "2016-04-01 00:00:00", + "end_date": "2016-04-01 00:05:00", + "text": "Common event 3", + "rec_type": "", + "event_pid": "", + "event_length": "", + "rec_pattern": "" + }, + { + "id": "10", + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-03-01 04:35:00", + "text": "Common event 4", + "rec_type": "", + "event_pid": "", + "event_length": "", + "rec_pattern": "" + }, + { + "id": "11", + "start_date": "2016-03-31 00:00:00", + "end_date": "2016-04-01 00:00:00", + "text": "Common End 6", + "rec_type": "", + "event_pid": "", + "event_length": "", + "rec_pattern": "" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/DayRecurrings/target.json b/tests/Data_getData/DayRecurrings/target.json new file mode 100644 index 0000000..682c288 --- /dev/null +++ b/tests/Data_getData/DayRecurrings/target.json @@ -0,0 +1,583 @@ +{ + "data": [ + { + "start_date": "2016-03-02 10:05:00", + "end_date": "2016-03-02 13:00:00", + "event_pid": "0", + "text": "Daily Test 1", + "id": "1", + "rec_type": "day_1___#3", + "event_length": "10500" + }, + { + "start_date": "2016-03-03 10:05:00", + "end_date": "2016-03-03 13:00:00", + "event_pid": "0", + "text": "Daily Test 1", + "id": "1", + "rec_type": "day_1___#3", + "event_length": "10500" + }, + { + "start_date": "2016-03-04 10:05:00", + "end_date": "2016-03-04 13:00:00", + "event_pid": "0", + "text": "Daily Test 1", + "id": "1", + "rec_type": "day_1___#3", + "event_length": "10500" + }, + { + "start_date": "2016-03-07 00:00:00", + "end_date": "2016-03-07 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-09 00:00:00", + "end_date": "2016-03-09 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-11 00:00:00", + "end_date": "2016-03-11 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-13 00:00:00", + "end_date": "2016-03-13 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-15 00:00:00", + "end_date": "2016-03-15 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-17 00:00:00", + "end_date": "2016-03-17 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-19 00:00:00", + "end_date": "2016-03-19 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-21 00:00:00", + "end_date": "2016-03-21 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-23 00:00:00", + "end_date": "2016-03-23 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-25 00:00:00", + "end_date": "2016-03-25 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-27 00:00:00", + "end_date": "2016-03-27 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-29 00:00:00", + "end_date": "2016-03-29 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-31 00:00:00", + "end_date": "2016-03-31 00:05:00", + "event_pid": "0", + "text": "Daily Test 2 End after ", + "id": "2", + "rec_type": "day_2___#40", + "event_length": "300" + }, + { + "start_date": "2016-03-02 00:00:00", + "end_date": "2016-03-02 00:05:00", + "event_pid": "0", + "text": "Daily Test 3 start before", + "id": "3", + "rec_type": "day_3___#10", + "event_length": "300" + }, + { + "start_date": "2016-03-05 00:00:00", + "end_date": "2016-03-05 00:05:00", + "event_pid": "0", + "text": "Daily Test 3 start before", + "id": "3", + "rec_type": "day_3___#10", + "event_length": "300" + }, + { + "start_date": "2016-03-08 00:00:00", + "end_date": "2016-03-08 00:05:00", + "event_pid": "0", + "text": "Daily Test 3 start before", + "id": "3", + "rec_type": "day_3___#10", + "event_length": "300" + }, + { + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-03-01 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-02 00:00:00", + "end_date": "2016-03-02 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-03 00:00:00", + "end_date": "2016-03-03 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-04 00:00:00", + "end_date": "2016-03-04 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-07 00:00:00", + "end_date": "2016-03-07 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-08 00:00:00", + "end_date": "2016-03-08 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-09 00:00:00", + "end_date": "2016-03-09 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-10 00:00:00", + "end_date": "2016-03-10 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-11 00:00:00", + "end_date": "2016-03-11 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-14 00:00:00", + "end_date": "2016-03-14 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-15 00:00:00", + "end_date": "2016-03-15 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-16 00:00:00", + "end_date": "2016-03-16 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-17 00:00:00", + "end_date": "2016-03-17 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-18 00:00:00", + "end_date": "2016-03-18 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-21 00:00:00", + "end_date": "2016-03-21 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-22 00:00:00", + "end_date": "2016-03-22 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-23 00:00:00", + "end_date": "2016-03-23 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-24 00:00:00", + "end_date": "2016-03-24 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-25 00:00:00", + "end_date": "2016-03-25 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-28 00:00:00", + "end_date": "2016-03-28 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-29 00:00:00", + "end_date": "2016-03-29 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-30 00:00:00", + "end_date": "2016-03-30 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-31 00:00:00", + "end_date": "2016-03-31 00:05:00", + "event_pid": "0", + "text": "Daily Test 4 (work)", + "id": "4", + "rec_type": "week_1___1,2,3,4,5#no", + "event_length": "300" + }, + { + "start_date": "2016-03-03 01:10:00", + "end_date": "2016-03-03 15:30:00", + "event_pid": "0", + "text": "Daily Test 5 (end by)", + "id": "5", + "rec_type": "day_6___#", + "event_length": 51600 + }, + { + "start_date": "2016-03-09 01:10:00", + "end_date": "2016-03-09 15:30:00", + "event_pid": "0", + "text": "Daily Test 5 (end by)", + "id": "5", + "rec_type": "day_6___#", + "event_length": 51600 + }, + { + "start_date": "2016-03-15 01:10:00", + "end_date": "2016-03-15 15:30:00", + "event_pid": "0", + "text": "Daily Test 5 (end by)", + "id": "5", + "rec_type": "day_6___#", + "event_length": 51600 + }, + { + "start_date": "2016-03-21 01:10:00", + "end_date": "2016-03-21 15:30:00", + "event_pid": "0", + "text": "Daily Test 5 (end by)", + "id": "5", + "rec_type": "day_6___#", + "event_length": 51600 + }, + { + "start_date": "2016-03-27 01:10:00", + "end_date": "2016-03-27 15:30:00", + "event_pid": "0", + "text": "Daily Test 5 (end by)", + "id": "5", + "rec_type": "day_6___#", + "event_length": 51600 + }, + { + "start_date": "2016-03-04 21:30:00", + "end_date": "2016-03-04 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-06 21:30:00", + "end_date": "2016-03-06 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-08 21:30:00", + "end_date": "2016-03-08 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-10 21:30:00", + "end_date": "2016-03-10 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-12 21:30:00", + "end_date": "2016-03-12 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-14 21:30:00", + "end_date": "2016-03-14 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-16 21:30:00", + "end_date": "2016-03-16 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-18 21:30:00", + "end_date": "2016-03-18 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-20 21:30:00", + "end_date": "2016-03-20 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-22 21:30:00", + "end_date": "2016-03-22 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-24 21:30:00", + "end_date": "2016-03-24 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-26 21:30:00", + "end_date": "2016-03-26 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-28 21:30:00", + "end_date": "2016-03-28 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-30 21:30:00", + "end_date": "2016-03-30 22:10:00", + "event_pid": "0", + "text": "Daily test 6", + "id": "6", + "rec_type": "day_2___#no", + "event_length": 2400 + }, + { + "start_date": "2016-03-10 13:30:00", + "end_date": "2016-03-10 17:00:00", + "text": "Common event 2", + "id": "8", + "event_pid": "", + "event_length": "", + "rec_pattern": "", + "rec_type": "" + }, + { + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-03-01 04:35:00", + "text": "Common event 4", + "id": "10", + "event_pid": "", + "event_length": "", + "rec_pattern": "", + "rec_type": "" + }, + { + "start_date": "2016-03-31 00:00:00", + "end_date": "2016-04-01 00:00:00", + "text": "Common End 6", + "id": "11", + "event_pid": "", + "event_length": "", + "rec_pattern": "", + "rec_type": "" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/MonthRecurrings/source.json b/tests/Data_getData/MonthRecurrings/source.json new file mode 100644 index 0000000..3e4e8e0 --- /dev/null +++ b/tests/Data_getData/MonthRecurrings/source.json @@ -0,0 +1,38 @@ +{ + "settings": { + "start_date": "2016-02-01 00:00:00", + "end_date": "2016-09-31 24:00:00" + }, + "data": [ + { + "id": "12", + "start_date": "2016-03-01 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Month event 1", + "rec_type": "month_1___#no", + "event_pid": "0", + "event_length": "11400", + "rec_pattern": "month_1___" + }, + { + "id": "13", + "start_date": "2016-03-03 00:00:00", + "end_date": "2016-09-03 00:00:00", + "text": "Month Event 2", + "rec_type": "month_2___#3", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "month_2___" + }, + { + "id": "14", + "start_date": "2016-01-01 15:00:00", + "end_date": "2016-05-21 00:00:00", + "text": "Month event 3 before", + "rec_type": "month_1_5_4_#", + "event_pid": "0", + "event_length": "10800", + "rec_pattern": "month_1_5_4_" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/MonthRecurrings/target.json b/tests/Data_getData/MonthRecurrings/target.json new file mode 100644 index 0000000..3244f55 --- /dev/null +++ b/tests/Data_getData/MonthRecurrings/target.json @@ -0,0 +1,130 @@ +{ + "data": [ + { + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-03-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-04-01 00:00:00", + "end_date": "2016-04-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-05-01 00:00:00", + "end_date": "2016-05-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-06-01 00:00:00", + "end_date": "2016-06-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-07-01 00:00:00", + "end_date": "2016-07-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-08-01 00:00:00", + "end_date": "2016-08-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-09-01 00:00:00", + "end_date": "2016-09-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-10-01 00:00:00", + "end_date": "2016-10-01 03:10:00", + "event_pid": "0", + "text": "Month event 1", + "id": "12", + "rec_type": "month_1___#no", + "event_length": "11400" + }, + { + "start_date": "2016-03-03 00:00:00", + "end_date": "2016-03-03 00:05:00", + "event_pid": "0", + "text": "Month Event 2", + "id": "13", + "rec_type": "month_2___#3", + "event_length": "300" + }, + { + "start_date": "2016-05-03 00:00:00", + "end_date": "2016-05-03 00:05:00", + "event_pid": "0", + "text": "Month Event 2", + "id": "13", + "rec_type": "month_2___#3", + "event_length": "300" + }, + { + "start_date": "2016-07-03 00:00:00", + "end_date": "2016-07-03 00:05:00", + "event_pid": "0", + "text": "Month Event 2", + "id": "13", + "rec_type": "month_2___#3", + "event_length": "300" + }, + { + "start_date": "2016-02-26 15:00:00", + "end_date": "2016-02-26 18:00:00", + "event_pid": "0", + "text": "Month event 3 before", + "id": "14", + "rec_type": "month_1_5_4_#", + "event_length": "10800" + }, + { + "start_date": "2016-03-25 15:00:00", + "end_date": "2016-03-25 18:00:00", + "event_pid": "0", + "text": "Month event 3 before", + "id": "14", + "rec_type": "month_1_5_4_#", + "event_length": "10800" + }, + { + "start_date": "2016-04-22 15:00:00", + "end_date": "2016-04-22 18:00:00", + "event_pid": "0", + "text": "Month event 3 before", + "id": "14", + "rec_type": "month_1_5_4_#", + "event_length": "10800" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/WeekRecurrings/source.json b/tests/Data_getData/WeekRecurrings/source.json new file mode 100644 index 0000000..3ad4afe --- /dev/null +++ b/tests/Data_getData/WeekRecurrings/source.json @@ -0,0 +1,74 @@ +{ + "settings": { + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-03-31 24:00:00" + }, + "data": [ + { + "id": "1", + "start_date": "2016-02-01 10:00:00", + "end_date": "2016-04-16 10:00:00", + "text": "Week event 1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_pid": "0", + "event_length": "21900", + "rec_pattern": "week_2___0,1,2,3,4,5,6", + "!nativeeditor_status": "" + }, + { + "id": "2", + "start_date": "2016-03-08 12:45:00", + "end_date": "2016-03-27 00:00:00", + "text": "Week event 2", + "rec_type": "week_2___2,5#", + "event_pid": "", + "event_length": "14400", + "rec_pattern": "week_2___2,5", + "!nativeeditor_status": "" + }, + { + "id": "3", + "start_date": "2016-03-12 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Week Event 3", + "rec_type": "week_2___0,6#no", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_2___0,6", + "!nativeeditor_status": "" + }, + { + "id": "4", + "start_date": "2016-02-22 10:00:00", + "end_date": "2016-03-27 10:00:00", + "text": "Week Event 4", + "rec_type": "week_2___0,1,5#8", + "event_pid": "", + "event_length": "18000", + "rec_pattern": "week_2___0,1,5", + "!nativeeditor_status": "" + }, + { + "id": "5", + "start_date": "2016-03-23 00:00:00", + "end_date": "2016-04-27 00:00:00", + "text": "Week Event 5", + "rec_type": "week_1___3#", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_1___3", + "!nativeeditor_status": "" + }, + { + "id": "6", + "start_date": "2016-03-28 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Week Event 6", + "rec_type": "week_1___1,2,4,5#no", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_1___1,2,4,5", + "!nativeeditor_status": "" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/WeekRecurrings/target.json b/tests/Data_getData/WeekRecurrings/target.json new file mode 100644 index 0000000..3740f93 --- /dev/null +++ b/tests/Data_getData/WeekRecurrings/target.json @@ -0,0 +1,319 @@ +{ + "data": [ + { + "start_date": "2016-03-01 10:00:00", + "end_date": "2016-03-01 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-02 10:00:00", + "end_date": "2016-03-02 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-03 10:00:00", + "end_date": "2016-03-03 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-04 10:00:00", + "end_date": "2016-03-04 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-05 10:00:00", + "end_date": "2016-03-05 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-06 10:00:00", + "end_date": "2016-03-06 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-14 10:00:00", + "end_date": "2016-03-14 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-15 10:00:00", + "end_date": "2016-03-15 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-16 10:00:00", + "end_date": "2016-03-16 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-17 10:00:00", + "end_date": "2016-03-17 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-18 10:00:00", + "end_date": "2016-03-18 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-19 10:00:00", + "end_date": "2016-03-19 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-20 10:00:00", + "end_date": "2016-03-20 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-28 10:00:00", + "end_date": "2016-03-28 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-29 10:00:00", + "end_date": "2016-03-29 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-30 10:00:00", + "end_date": "2016-03-30 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-31 10:00:00", + "end_date": "2016-03-31 16:05:00", + "event_pid": "0", + "text": "Week event 1", + "id": "1", + "rec_type": "week_2___0,1,2,3,4,5,6#40", + "event_length": 21900 + }, + { + "start_date": "2016-03-08 12:45:00", + "end_date": "2016-03-08 16:45:00", + "event_pid": "0", + "text": "Week event 2", + "id": "2", + "rec_type": "week_2___2,5#", + "event_length": 14400 + }, + { + "start_date": "2016-03-11 12:45:00", + "end_date": "2016-03-11 16:45:00", + "event_pid": "0", + "text": "Week event 2", + "id": "2", + "rec_type": "week_2___2,5#", + "event_length": 14400 + }, + { + "start_date": "2016-03-22 12:45:00", + "end_date": "2016-03-22 16:45:00", + "event_pid": "0", + "text": "Week event 2", + "id": "2", + "rec_type": "week_2___2,5#", + "event_length": 14400 + }, + { + "start_date": "2016-03-25 12:45:00", + "end_date": "2016-03-25 16:45:00", + "event_pid": "0", + "text": "Week event 2", + "id": "2", + "rec_type": "week_2___2,5#", + "event_length": 14400 + }, + { + "start_date": "2016-03-12 00:00:00", + "end_date": "2016-03-12 00:05:00", + "event_pid": "0", + "text": "Week Event 3", + "id": "3", + "rec_type": "week_2___0,6#no", + "event_length": 300 + }, + { + "start_date": "2016-03-13 00:00:00", + "end_date": "2016-03-13 00:05:00", + "event_pid": "0", + "text": "Week Event 3", + "id": "3", + "rec_type": "week_2___0,6#no", + "event_length": 300 + }, + { + "start_date": "2016-03-26 00:00:00", + "end_date": "2016-03-26 00:05:00", + "event_pid": "0", + "text": "Week Event 3", + "id": "3", + "rec_type": "week_2___0,6#no", + "event_length": 300 + }, + { + "start_date": "2016-03-27 00:00:00", + "end_date": "2016-03-27 00:05:00", + "event_pid": "0", + "text": "Week Event 3", + "id": "3", + "rec_type": "week_2___0,6#no", + "event_length": 300 + }, + { + "start_date": "2016-03-07 10:00:00", + "end_date": "2016-03-07 15:00:00", + "event_pid": "0", + "text": "Week Event 4", + "id": "4", + "rec_type": "week_2___0,1,5#8", + "event_length": 18000 + }, + { + "start_date": "2016-03-11 10:00:00", + "end_date": "2016-03-11 15:00:00", + "event_pid": "0", + "text": "Week Event 4", + "id": "4", + "rec_type": "week_2___0,1,5#8", + "event_length": 18000 + }, + { + "start_date": "2016-03-13 10:00:00", + "end_date": "2016-03-13 15:00:00", + "event_pid": "0", + "text": "Week Event 4", + "id": "4", + "rec_type": "week_2___0,1,5#8", + "event_length": 18000 + }, + { + "start_date": "2016-03-21 10:00:00", + "end_date": "2016-03-21 15:00:00", + "event_pid": "0", + "text": "Week Event 4", + "id": "4", + "rec_type": "week_2___0,1,5#8", + "event_length": 18000 + }, + { + "start_date": "2016-03-25 10:00:00", + "end_date": "2016-03-25 15:00:00", + "event_pid": "0", + "text": "Week Event 4", + "id": "4", + "rec_type": "week_2___0,1,5#8", + "event_length": 18000 + }, + { + "start_date": "2016-03-23 00:00:00", + "end_date": "2016-03-23 00:05:00", + "event_pid": "0", + "text": "Week Event 5", + "id": "5", + "rec_type": "week_1___3#", + "event_length": 300 + }, + { + "start_date": "2016-03-30 00:00:00", + "end_date": "2016-03-30 00:05:00", + "event_pid": "0", + "text": "Week Event 5", + "id": "5", + "rec_type": "week_1___3#", + "event_length": 300 + }, + { + "start_date": "2016-03-28 00:00:00", + "end_date": "2016-03-28 00:05:00", + "event_pid": "0", + "text": "Week Event 6", + "id": "6", + "rec_type": "week_1___1,2,4,5#no", + "event_length": 300 + }, + { + "start_date": "2016-03-29 00:00:00", + "end_date": "2016-03-29 00:05:00", + "event_pid": "0", + "text": "Week Event 6", + "id": "6", + "rec_type": "week_1___1,2,4,5#no", + "event_length": 300 + }, + { + "start_date": "2016-03-31 00:00:00", + "end_date": "2016-03-31 00:05:00", + "event_pid": "0", + "text": "Week Event 6", + "id": "6", + "rec_type": "week_1___1,2,4,5#no", + "event_length": 300 + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/YearRecurrings/source.json b/tests/Data_getData/YearRecurrings/source.json new file mode 100644 index 0000000..838696c --- /dev/null +++ b/tests/Data_getData/YearRecurrings/source.json @@ -0,0 +1,58 @@ +{ + "settings": { + "start_date": "2016-01-01 00:00:00", + "end_date": "2017-01-01 00:00:00" + }, + "data": [ + { + "id": "7", + "start_date": "2015-01-01 00:00:00", + "end_date": "2018-01-01 00:00:00", + "text": "Year Event 1", + "rec_type": "year_1___#3", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "year_1___" + }, + { + "id": "8", + "start_date": "2016-03-01 18:00:00", + "end_date": "2019-03-22 18:00:00", + "text": "Year Event 2", + "rec_type": "year_1_5_4_#3", + "event_pid": "0", + "event_length": "12000", + "rec_pattern": "year_1_5_4_" + }, + { + "id": "9", + "start_date": "2016-05-01 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Year Event 3", + "rec_type": "year_1_1_1_#no", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "year_1_1_1_" + }, + { + "id": "10", + "start_date": "2015-02-10 00:00:00", + "end_date": "2020-04-22 00:00:00", + "text": "Year Event 4", + "rec_type": "year_1___#", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "year_1___" + }, + { + "id": "11", + "start_date": "2015-12-01 00:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Year Event 5", + "rec_type": "year_1_7_4_#no", + "event_pid": "0", + "event_length": "300", + "rec_pattern": "year_1_7_4_" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_getData/YearRecurrings/target.json b/tests/Data_getData/YearRecurrings/target.json new file mode 100644 index 0000000..131ecd4 --- /dev/null +++ b/tests/Data_getData/YearRecurrings/target.json @@ -0,0 +1,49 @@ +{ + "data": [ + { + "start_date": "2016-01-01 00:00:00", + "end_date": "2016-01-01 00:05:00", + "event_pid": "0", + "text": "Year Event 1", + "id": "7", + "rec_type": "year_1___#3", + "event_length": "300" + }, + { + "start_date": "2016-03-25 18:00:00", + "end_date": "2016-03-25 21:20:00", + "event_pid": "0", + "text": "Year Event 2", + "id": "8", + "rec_type": "year_1_5_4_#3", + "event_length": "12000" + }, + { + "start_date": "2016-05-02 00:00:00", + "end_date": "2016-05-02 00:05:00", + "event_pid": "0", + "text": "Year Event 3", + "id": "9", + "rec_type": "year_1_1_1_#no", + "event_length": "300" + }, + { + "start_date": "2016-02-10 00:00:00", + "end_date": "2016-02-10 00:05:00", + "event_pid": "0", + "text": "Year Event 4", + "id": "10", + "rec_type": "year_1___#", + "event_length": "300" + }, + { + "start_date": "2016-12-25 00:00:00", + "end_date": "2016-12-25 00:05:00", + "event_pid": "0", + "text": "Year Event 5", + "id": "11", + "rec_type": "year_1_7_4_#no", + "event_length": 300 + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/DayRecurrings/source.json b/tests/Data_saveData/DayRecurrings/source.json new file mode 100644 index 0000000..e700251 --- /dev/null +++ b/tests/Data_saveData/DayRecurrings/source.json @@ -0,0 +1,24 @@ +{ + "data": [ + { + "recurring_type": { + "each": "day", + "step": 1, + "repeat": 10 + }, + "start_date": "2016-03-08 10:15:00", + "length": 600, + "text": "Test Event 1" + }, + { + "recurring_type": { + "each": "day", + "step": 1, + "repeat": 5 + }, + "start_date": "2016-03-08 10:15:00", + "length": 300, + "text": "Test Event 2" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/DayRecurrings/target.json b/tests/Data_saveData/DayRecurrings/target.json new file mode 100644 index 0000000..270240e --- /dev/null +++ b/tests/Data_saveData/DayRecurrings/target.json @@ -0,0 +1,20 @@ +{ + "data": [ + { + "start_date": "2016-03-08 10:15:00", + "end_date": "2016-03-18 10:15:00", + "text": "Test Event 1", + "event_pid": "", + "event_length": "600", + "rec_type": "day_1___#10" + }, + { + "start_date": "2016-03-08 10:15:00", + "end_date": "2016-03-13 10:15:00", + "text": "Test Event 2", + "event_pid": "", + "event_length": "300", + "rec_type": "day_1___#5" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/MonthRecurrings/source.json b/tests/Data_saveData/MonthRecurrings/source.json new file mode 100644 index 0000000..73f6e46 --- /dev/null +++ b/tests/Data_saveData/MonthRecurrings/source.json @@ -0,0 +1,48 @@ +{ + "data": [ + { + "recurring_type": { + "each": "month", + "step": 3 + }, + "start_date": "2016-03-13 12:00:00", + "end_date": "9999-02-01 00:00:00", + "length": 2100, + "text": "Test Month 1" + }, + { + "recurring_type": { + "each": "month", + "repeat": 6, + "week_number": 4, + "days_of_week": "friday", + "step": 1 + }, + "start_date": "2016-03-01 15:00:00", + "length": 17700, + "text": "Test Month 2" + }, + { + "recurring_type": { + "each": "month", + "step": 1, + "days_of_week": "wednesday", + "week_number": 1 + }, + "start_date": "2016-03-01 10:00:00", + "end_date": "2016-08-21 00:00:00", + "length": 26100, + "text": "Test Month 3" + }, + { + "recurring_type": { + "each": "month", + "step": 1 + }, + "start_date": "2016-03-30 02:50:00", + "end_date": "9999-02-01 00:00:00", + "length": 18000, + "text": "Test Month 4" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/MonthRecurrings/target.json b/tests/Data_saveData/MonthRecurrings/target.json new file mode 100644 index 0000000..7263a37 --- /dev/null +++ b/tests/Data_saveData/MonthRecurrings/target.json @@ -0,0 +1,36 @@ +{ + "data": [ + { + "start_date": "2016-03-13 12:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Month 1", + "event_pid": "", + "event_length": "2100", + "rec_type": "month_3___#no" + }, + { + "start_date": "2016-03-01 15:00:00", + "end_date": "2016-09-23 15:00:00", + "text": "Test Month 2", + "event_pid": "", + "event_length": "17700", + "rec_type": "month_1_5_4_#6" + }, + { + "start_date": "2016-03-01 10:00:00", + "end_date": "2016-08-21 00:00:00", + "text": "Test Month 3", + "event_pid": "", + "event_length": "26100", + "rec_type": "month_1_3_1_#" + }, + { + "start_date": "2016-03-30 02:50:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Month 4", + "event_pid": "", + "event_length": "18000", + "rec_type": "month_1___#no" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/WeekRecurrings/source.json b/tests/Data_saveData/WeekRecurrings/source.json new file mode 100644 index 0000000..524267b --- /dev/null +++ b/tests/Data_saveData/WeekRecurrings/source.json @@ -0,0 +1,39 @@ +{ + "data": [ + { + "recurring_type": { + "each": "week", + "step": 2, + "days_of_week": "sunday,monday,tuesday,wednesday,thursday,friday,saturday" + }, + "start_date": "2016-03-01 12:20:00", + "end_date": "9999-02-01 00:00:00", + "length": 300, + "text": "Test Week Event 1" + }, + { + "recurring_type": { + "each": "week", + "repeat": 17, + "step": 1, + "days_of_week": "monday,wednesday,thursday,friday" + + }, + "start_date": "2016-03-02 20:00:00", + "end_date": "2016-03-31 00:00:00", + "length": 300, + "text": "Test Week Event 2" + }, + { + "recurring_type": { + "each": "week", + "step": 3, + "days_of_week": "monday,wednesday" + }, + "start_date": "2016-03-02 15:55:00", + "end_date": "2016-08-21 00:00:00", + "length": 600, + "text": "Test Week Event 3" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/WeekRecurrings/target.json b/tests/Data_saveData/WeekRecurrings/target.json new file mode 100644 index 0000000..04e7599 --- /dev/null +++ b/tests/Data_saveData/WeekRecurrings/target.json @@ -0,0 +1,31 @@ +{ + "data": [ + { + "start_date": "2016-03-01 12:20:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Week Event 1", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_2___0,1,2,3,4,5,6", + "rec_type": "week_2___0,1,2,3,4,5,6#no" + }, + { + "start_date": "2016-03-02 20:00:00", + "end_date": "2016-03-31 00:00:00", + "text": "Test Week Event 2", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_1___1,3,4,5", + "rec_type": "week_1___1,3,4,5#17" + }, + { + "start_date": "2016-03-02 15:55:00", + "end_date": "2016-08-21 00:00:00", + "text": "Test Week Event 3", + "event_pid": "", + "event_length": "600", + "rec_pattern": "week_3___1,3", + "rec_type": "week_3___1,3#" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/YearRecurrings/source.json b/tests/Data_saveData/YearRecurrings/source.json new file mode 100644 index 0000000..7a013ec --- /dev/null +++ b/tests/Data_saveData/YearRecurrings/source.json @@ -0,0 +1,50 @@ +{ + "data": [ + { + "recurring_type": { + "each": "year", + "step": 1 + }, + "start_date": "2016-03-08 11:40:00", + "end_date": "9999-02-01 00:00:00", + "length": 6600, + "text": "Test Year 1" + }, + { + "recurring_type": { + "each": "year", + "repeat": 4, + "week_number": 1, + "step": 1, + "days_of_week": "monday" + }, + "start_date": "2016-03-01 10:35:00", + "length": 30000, + "text": "Test Year 2" + }, + { + "recurring_type": { + "each": "year", + "step": 1, + "days_of_week": "sunday", + "week_number": 4 + }, + "start_date": "2016-12-01 22:00:00", + "end_date": "2019-04-21 00:00:00", + "length": 3900, + "text": "Test Year 3" + }, + { + "recurring_type": { + "each": "year", + "step": 1, + "days_of_week": "tuesday", + "week_number": 1 + }, + "start_date": "2016-01-01 10:40:00", + "end_date": "9999-02-01 00:00:00", + "length": 47700, + "text": "Test Year 4" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveData/YearRecurrings/target.json b/tests/Data_saveData/YearRecurrings/target.json new file mode 100644 index 0000000..ea3d780 --- /dev/null +++ b/tests/Data_saveData/YearRecurrings/target.json @@ -0,0 +1,36 @@ +{ + "data": [ + { + "start_date": "2016-03-08 11:40:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Year 1", + "event_pid": "", + "event_length": "6600", + "rec_type": "year_1___#no" + }, + { + "start_date": "2016-03-01 10:35:00", + "end_date": "2020-03-02 10:35:00", + "text": "Test Year 2", + "event_pid": "", + "event_length": "30000", + "rec_type": "year_1_1_1_#4" + }, + { + "start_date": "2016-12-01 22:00:00", + "end_date": "2019-04-21 00:00:00", + "text": "Test Year 3", + "event_pid": "", + "event_length": "3900", + "rec_type": "year_1_7_4_#" + }, + { + "start_date": "2016-01-01 10:40:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Year 4", + "event_pid": "", + "event_length": "47700", + "rec_type": "year_1_2_1_#no" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/DayRecurrings/source.json b/tests/Data_saveDataUpdate/DayRecurrings/source.json new file mode 100644 index 0000000..304593e --- /dev/null +++ b/tests/Data_saveDataUpdate/DayRecurrings/source.json @@ -0,0 +1,64 @@ +{ + "insert_data": [ + { + "id": "1", + "start_date": "2015-02-04 11:00:00", + "end_date": "2015-02-04 19:30:00", + "text": "Event X1", + "rec_type": "", + "event_length": "" + }, + { + "id": "2", + "start_date": "2020-07-09 11:00:00", + "end_date": "2020-07-09 19:20:00", + "text": "Event X2", + "rec_type": "day_1___#3", + "event_length": "600" + }, + { + "id": "3", + "start_date": "2014-04-09 18:00:00", + "end_date": "2014-04-09 19:25:00", + "text": "Event X3", + "rec_type": "", + "event_length": "" + } + ], + "data": [ + { + "id": 1, + "recurring_type": { + "each": "day", + "step": 1 + }, + "start_date": "2016-03-08 11:35:00", + "end_date": "9999-02-01 00:00:00", + "length": 19200, + "text": "Test Event 1" + }, + { + "id": 2, + "recurring_type": { + "each": "day", + "step": 2, + "repeat": 33 + }, + "start_date": "2016-03-03 00:00:00", + "length": 300, + "text": "Test Event 2" + }, + { + "id": 3, + "recurring_type": { + "each": "week", + "step": 1, + "days_of_week": "monday,tuesday,wednesday,thursday,friday" + }, + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-08-21 00:00:00", + "length": 300, + "text": "Test Event 3" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/DayRecurrings/target.json b/tests/Data_saveDataUpdate/DayRecurrings/target.json new file mode 100644 index 0000000..fc46634 --- /dev/null +++ b/tests/Data_saveDataUpdate/DayRecurrings/target.json @@ -0,0 +1,34 @@ +{ + "data": [ + { + "start_date": "2016-03-08 11:35:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Event 1", + "id": "1", + "event_pid": "", + "event_length": "19200", + "rec_pattern": "day_1___", + "rec_type": "day_1___#no" + }, + { + "start_date": "2016-03-03 00:00:00", + "end_date": "2016-05-08 00:00:00", + "text": "Test Event 2", + "id": "2", + "event_pid": "", + "event_length": "300", + "rec_pattern": "day_2___", + "rec_type": "day_2___#33" + }, + { + "start_date": "2016-03-01 00:00:00", + "end_date": "2016-08-21 00:00:00", + "text": "Test Event 3", + "id": "3", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_1___1,2,3,4,5", + "rec_type": "week_1___1,2,3,4,5#" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/MonthRecurrings/source.json b/tests/Data_saveDataUpdate/MonthRecurrings/source.json new file mode 100644 index 0000000..17fafba --- /dev/null +++ b/tests/Data_saveDataUpdate/MonthRecurrings/source.json @@ -0,0 +1,86 @@ +{ + "insert_data": [ + { + "id": "1", + "start_date": "2015-02-04 11:00:00", + "end_date": "2015-02-04 19:30:00", + "text": "Event X1", + "rec_type": "", + "event_length": "" + }, + { + "id": "2", + "start_date": "2020-07-09 11:00:00", + "end_date": "2020-07-09 19:20:00", + "text": "Event X2", + "rec_type": "day_1___#3", + "event_length": "600" + }, + { + "id": "3", + "start_date": "2014-04-09 18:00:00", + "end_date": "2014-04-09 19:25:00", + "text": "Event X3", + "rec_type": "", + "event_length": "" + }, + { + "id": "4", + "start_date": "2014-04-20 18:00:00", + "end_date": "2014-05-30 19:25:00", + "text": "Event X4", + "rec_type": "", + "event_length": "" + } + ], + "data": [ + { + "id": 1, + "recurring_type": { + "each": "month", + "step": 3 + }, + "start_date": "2016-03-13 12:00:00", + "end_date": "9999-02-01 00:00:00", + "length": 2100, + "text": "Test Month 1" + }, + { + "id": 2, + "recurring_type": { + "each": "month", + "repeat": 6, + "week_number": 4, + "days_of_week": "friday", + "step": 1 + }, + "start_date": "2016-03-01 15:00:00", + "length": 17700, + "text": "Test Month 2" + }, + { + "id": 3, + "recurring_type": { + "each": "month", + "step": 1, + "days_of_week": "wednesday", + "week_number": 1 + }, + "start_date": "2016-03-01 10:00:00", + "end_date": "2016-08-21 00:00:00", + "length": 26100, + "text": "Test Month 3" + }, + { + "id": 4, + "recurring_type": { + "each": "month", + "step": 1 + }, + "start_date": "2016-03-30 02:50:00", + "end_date": "9999-02-01 00:00:00", + "length": 18000, + "text": "Test Month 4" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/MonthRecurrings/target.json b/tests/Data_saveDataUpdate/MonthRecurrings/target.json new file mode 100644 index 0000000..704a01e --- /dev/null +++ b/tests/Data_saveDataUpdate/MonthRecurrings/target.json @@ -0,0 +1,40 @@ +{ + "data": [ + { + "start_date": "2016-03-13 12:00:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Month 1", + "id": "1", + "event_pid": "", + "event_length": "2100", + "rec_type": "month_3___#no" + }, + { + "start_date": "2016-03-01 15:00:00", + "end_date": "2016-09-23 15:00:00", + "text": "Test Month 2", + "id": "2", + "event_pid": "", + "event_length": "17700", + "rec_type": "month_1_5_4_#6" + }, + { + "start_date": "2016-03-01 10:00:00", + "end_date": "2016-08-21 00:00:00", + "text": "Test Month 3", + "id": "3", + "event_pid": "", + "event_length": "26100", + "rec_type": "month_1_3_1_#" + }, + { + "start_date": "2016-03-30 02:50:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Month 4", + "id": "4", + "event_pid": "", + "event_length": "18000", + "rec_type": "month_1___#no" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/WeekRecurrings/source.json b/tests/Data_saveDataUpdate/WeekRecurrings/source.json new file mode 100644 index 0000000..dbce0bb --- /dev/null +++ b/tests/Data_saveDataUpdate/WeekRecurrings/source.json @@ -0,0 +1,68 @@ +{ + "insert_data": [ + { + "id": "1", + "start_date": "2015-02-04 11:00:00", + "end_date": "2015-02-04 19:30:00", + "text": "Event X1", + "rec_type": "", + "event_length": "" + }, + { + "id": "2", + "start_date": "2020-07-09 11:00:00", + "end_date": "2020-07-09 19:20:00", + "text": "Event X2", + "rec_type": "day_1___#3", + "event_length": "600" + }, + { + "id": "3", + "start_date": "2014-04-09 18:00:00", + "end_date": "2014-04-09 19:25:00", + "text": "Event X3", + "rec_type": "", + "event_length": "" + } + ], + "data": [ + { + "id": 1, + "recurring_type": { + "each": "week", + "step": 2, + "days_of_week": "sunday,monday,tuesday,wednesday,thursday,friday,saturday" + }, + "start_date": "2016-03-01 12:20:00", + "end_date": "9999-02-01 00:00:00", + "length": 300, + "text": "Test Week Event 1" + }, + { + "id": 2, + "recurring_type": { + "each": "week", + "repeat": 17, + "step": 1, + "days_of_week": "monday,wednesday,thursday,friday" + + }, + "start_date": "2016-03-02 20:00:00", + "end_date": "2016-03-31 00:00:00", + "length": 300, + "text": "Test Week Event 2" + }, + { + "id": 3, + "recurring_type": { + "each": "week", + "step": 3, + "days_of_week": "monday,wednesday" + }, + "start_date": "2016-03-02 15:55:00", + "end_date": "2016-08-21 00:00:00", + "length": 600, + "text": "Test Week Event 3" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/WeekRecurrings/target.json b/tests/Data_saveDataUpdate/WeekRecurrings/target.json new file mode 100644 index 0000000..731db63 --- /dev/null +++ b/tests/Data_saveDataUpdate/WeekRecurrings/target.json @@ -0,0 +1,34 @@ +{ + "data": [ + { + "start_date": "2016-03-01 12:20:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Week Event 1", + "id": "1", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_2___0,1,2,3,4,5,6", + "rec_type": "week_2___0,1,2,3,4,5,6#no" + }, + { + "start_date": "2016-03-02 20:00:00", + "end_date": "2016-03-31 00:00:00", + "text": "Test Week Event 2", + "id": "2", + "event_pid": "", + "event_length": "300", + "rec_pattern": "week_1___1,3,4,5", + "rec_type": "week_1___1,3,4,5#17" + }, + { + "start_date": "2016-03-02 15:55:00", + "end_date": "2016-08-21 00:00:00", + "text": "Test Week Event 3", + "id": "3", + "event_pid": "", + "event_length": "600", + "rec_pattern": "week_3___1,3", + "rec_type": "week_3___1,3#" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/YearRecurrings/source.json b/tests/Data_saveDataUpdate/YearRecurrings/source.json new file mode 100644 index 0000000..351e8b6 --- /dev/null +++ b/tests/Data_saveDataUpdate/YearRecurrings/source.json @@ -0,0 +1,88 @@ +{ + "insert_data": [ + { + "id": "1", + "start_date": "2015-02-04 11:00:00", + "end_date": "2015-02-04 19:30:00", + "text": "Event X1", + "rec_type": "", + "event_length": "" + }, + { + "id": "2", + "start_date": "2020-07-09 11:00:00", + "end_date": "2020-07-09 19:20:00", + "text": "Event X2", + "rec_type": "day_1___#3", + "event_length": "600" + }, + { + "id": "3", + "start_date": "2014-04-09 18:00:00", + "end_date": "2014-04-09 19:25:00", + "text": "Event X3", + "rec_type": "", + "event_length": "" + }, + { + "id": "4", + "start_date": "2014-04-20 18:00:00", + "end_date": "2014-05-30 19:25:00", + "text": "Event X4", + "rec_type": "", + "event_length": "" + } + ], + "data": [ + { + "id": 1, + "recurring_type": { + "each": "year", + "step": 1 + }, + "start_date": "2016-03-08 11:40:00", + "end_date": "9999-02-01 00:00:00", + "length": 6600, + "text": "Test Year 1" + }, + { + "id": 2, + "recurring_type": { + "each": "year", + "repeat": 4, + "week_number": 1, + "step": 1, + "days_of_week": "monday" + }, + "start_date": "2016-03-01 10:35:00", + "length": 30000, + "text": "Test Year 2" + }, + { + "id": 3, + "recurring_type": { + "each": "year", + "step": 1, + "days_of_week": "sunday", + "week_number": 4 + }, + "start_date": "2016-12-01 22:00:00", + "end_date": "2019-04-21 00:00:00", + "length": 3900, + "text": "Test Year 3" + }, + { + "id": 4, + "recurring_type": { + "each": "year", + "step": 1, + "days_of_week": "tuesday", + "week_number": 1 + }, + "start_date": "2016-01-01 10:40:00", + "end_date": "9999-02-01 00:00:00", + "length": 47700, + "text": "Test Year 4" + } + ] +}
\ No newline at end of file diff --git a/tests/Data_saveDataUpdate/YearRecurrings/target.json b/tests/Data_saveDataUpdate/YearRecurrings/target.json new file mode 100644 index 0000000..5b47acb --- /dev/null +++ b/tests/Data_saveDataUpdate/YearRecurrings/target.json @@ -0,0 +1,40 @@ +{ + "data": [ + { + "start_date": "2016-03-08 11:40:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Year 1", + "id": "1", + "event_pid": "", + "event_length": "6600", + "rec_type": "year_1___#no" + }, + { + "start_date": "2016-03-01 10:35:00", + "end_date": "2020-03-02 10:35:00", + "text": "Test Year 2", + "id": "2", + "event_pid": "", + "event_length": "30000", + "rec_type": "year_1_1_1_#4" + }, + { + "start_date": "2016-12-01 22:00:00", + "end_date": "2019-04-21 00:00:00", + "text": "Test Year 3", + "id": "3", + "event_pid": "", + "event_length": "3900", + "rec_type": "year_1_7_4_#" + }, + { + "start_date": "2016-01-01 10:40:00", + "end_date": "9999-02-01 00:00:00", + "text": "Test Year 4", + "id": "4", + "event_pid": "", + "event_length": "47700", + "rec_type": "year_1_2_1_#no" + } + ] +}
\ No newline at end of file diff --git a/tests/Logger.php b/tests/Logger.php new file mode 100644 index 0000000..115b624 --- /dev/null +++ b/tests/Logger.php @@ -0,0 +1,33 @@ +<?php + +class Logger +{ + private $_stepNumber = 0; + + public function logStart($name = NULL) + { + $this->_stepNumber = 0; + print "Test started. $name\n"; + } + + public function logStep(){ + print "Step ".(++$this->_stepNumber)."\n"; + } + + public function logEnd($name = NULL){ + $this->_stepNumber = 0; + print "Test finished. $name\n"; + } + + public function info($msg){ + print "INFO: $msg\n"; + } + + public function warning($msg){ + print "WARNING: $msg\n"; + } + + public function error($msg){ + print "ERROR: $msg\n"; + } +}
\ No newline at end of file diff --git a/tests/SchedulerHelperTest.php b/tests/SchedulerHelperTest.php new file mode 100644 index 0000000..9b13998 --- /dev/null +++ b/tests/SchedulerHelperTest.php @@ -0,0 +1,193 @@ +<?php +require_once "Logger.php"; +require_once "TestBaseHelper.php"; +require_once "TestDataHelper.php"; +require_once "TestConfig.php"; +use DHTMLX_Scheduler\Helper; + + +class SchedulerHelperTest extends \PHPUnit_Framework_TestCase +{ + private $_baseHelper; + private $_logger; + + private function getHelper(){ + $schedHelper = new Helper( + array( + "dbsm" => TestConfig::DBSM, + "host" => TestConfig::HOST, + "db_name" => TestConfig::DB_NAME, + "user" => TestConfig::USER, + "password" => TestConfig::PASSWORD, + "table_name" => TestConfig::TEMP_TABLE_NAME + ) + ); + $schedHelper->setFieldsNames(array( + $schedHelper::FLD_ID => "id", + )); + + return $schedHelper; + } + + public function __construct() + { + $this->_logger = new Logger(); + + $this->_baseHelper = new TestBaseHelper(array( + "dbsm" => TestConfig::DBSM, + "host" => TestConfig::HOST, + "db_name" => TestConfig::DB_NAME, + "user" => TestConfig::USER, + "password" => TestConfig::PASSWORD, + "table_name" => TestConfig::TEMP_TABLE_NAME, + "fields" => TestConfig::$fields + )); + } + + public function __destruct() + { + $this->_baseHelper->dropTable(); + } + + public function testGetData() + { + $testName = "getData"; + + $this->_logger->logStart($testName); + $schedHelper = $this->getHelper(); + + $dataHelp = new TestDataHelper($testName); + $dataPacks = $dataHelp->getTestDataList(); + + if($dataPacks) { + for ($i = 0; $i < count($dataPacks); $i++) { + $this->_logger->logStep($testName); + $this->_logger->info("$dataPacks[$i] bunch processing...."); + $source = $dataHelp->getTestSourceData($dataPacks[$i]); + $target = $dataHelp->getTestTargetData($dataPacks[$i]); + + if(!$source || !$target){ + $this->_logger->warning("There is no data. Bunch is skipped"); + continue; + } + + $this->_baseHelper->resetTable(); + $this->_baseHelper->insertDataFromJSON($source['data']); + + $helperData = $schedHelper->getData($source["settings"]["start_date"], $source["settings"]["end_date"]); + $dataHelp->writeObjectToFile($helperData, "_helperData.txt", $dataPacks[$i]); + $this->assertTrue($dataHelp->compareDataBunches($helperData, $target["data"], TestConfig::$fields), + "Helper and Scheduler data has difference"); + } + } + + $this->_logger->logEnd($testName); + } + + public function testSaveData_Insert(){ + $testName = "saveData"; + $this->_logger->logStart($testName); + $schedHelper = $this->getHelper(); + + $dataHelp = new TestDataHelper($testName); + $dataPacks = $dataHelp->getTestDataList(); + if($dataPacks) { + for ($i = 0; $i < count($dataPacks); $i++) { + $this->_logger->logStep($testName); + $this->_logger->info("$dataPacks[$i] bunch processing...."); + $source = $dataHelp->getTestSourceData($dataPacks[$i]); + $target = $dataHelp->getTestTargetData($dataPacks[$i]); + + + if(!$source || !$target){ + $this->_logger->warning("There is no data. Bunch is skipped"); + continue; + } + + $this->_baseHelper->resetTable(); + $sourceData = $dataHelp->prepateDataForHelper($source["data"], $schedHelper); + $dataHelp->saveDataWithHelper($sourceData, $schedHelper); + + $dataFromBase = $this->_baseHelper->getDataFromBase(); + + $dataHelp->writeObjectToFile($dataFromBase, "_dataFromBase.txt", $dataPacks[$i]); + $this->assertTrue($dataHelp->compareDataBunches($target["data"], $dataFromBase, TestConfig::$fields), + "Helper and Scheduler data has difference"); + } + } + + $this->_logger->logEnd($testName); + } + + public function testSaveData_Update(){ + $testName = "saveDataUpdate"; + $this->_logger->logStart($testName); + $schedHelper = $this->getHelper(); + + $dataHelp = new TestDataHelper($testName); + $dataPacks = $dataHelp->getTestDataList(); + if($dataPacks) { + for ($i = 0; $i < count($dataPacks); $i++) { + $this->_logger->logStep($testName); + $this->_logger->info("$dataPacks[$i] bunch processing...."); + $source = $dataHelp->getTestSourceData($dataPacks[$i]); + $target = $dataHelp->getTestTargetData($dataPacks[$i]); + + + if(!$source || !$target){ + $this->_logger->warning("There is no data. Bunch is skipped"); + continue; + } + + $this->_baseHelper->resetTable(); + + $this->_baseHelper->insertDataFromJSON($source["insert_data"]); + $sourceData = $dataHelp->prepateDataForHelper($source["data"], $schedHelper); + $dataHelp->saveDataWithHelper($sourceData, $schedHelper); + + $dataFromBase = $this->_baseHelper->getDataFromBase(); + + $dataHelp->writeObjectToFile($dataFromBase, "_dataFromBase.txt", $dataPacks[$i]); + $this->assertTrue($dataHelp->compareDataBunches($target["data"], $dataFromBase, TestConfig::$fields), + "Helper and Scheduler data has difference"); + } + } + + $this->_logger->logEnd($testName); + } + + public function testdeleteById(){ + $testName = "deleteById"; + $this->_logger->logStart($testName); + $schedHelper = $this->getHelper(); + + $dataHelp = new TestDataHelper($testName); + $dataPacks = $dataHelp->getTestDataList(); + if($dataPacks) { + for ($i = 0; $i < count($dataPacks); $i++) { + $this->_logger->logStep($testName); + $this->_logger->info("$dataPacks[$i] bunch processing...."); + $source = $dataHelp->getTestSourceData($dataPacks[$i]); + + + if(!$source){ + $this->_logger->warning("There is no data. Bunch is skipped"); + continue; + } + + $this->_baseHelper->resetTable(); + + $this->_baseHelper->insertDataFromJSON($source["insert_data"]); + + foreach($source["data"] as $event){ + $schedHelper->deleteById($event["id"]); + $dataFromBase = $this->_baseHelper->getDataFromBase($event["id"]); + $this->assertTrue(count($dataFromBase) === 0, + "Event wasn't removed"); + } + } + } + + $this->_logger->logEnd($testName); + } +}
\ No newline at end of file diff --git a/tests/TestBaseHelper.php b/tests/TestBaseHelper.php new file mode 100644 index 0000000..5372d92 --- /dev/null +++ b/tests/TestBaseHelper.php @@ -0,0 +1,114 @@ +<?php + +class TestBaseHelper +{ + private $_dbsm, $_host, $_db_name, $_user, $_password, $_table_name; + private $_PDO = null; + + private $_fields; + + public function __construct($configs = array()) + { + $this->_dbsm = isset($configs["dbsm"]) ? $configs["dbsm"] : "mysql"; + $this->_host = isset($configs["host"]) ? $configs["host"] : "localhost"; + $this->_db_name = $configs["db_name"]; + $this->_user = $configs["user"]; + $this->_password = $configs["password"]; + $this->_table_name = $configs["table_name"]; + $this->_fields = $configs["fields"]; + } + + private function getConnection() + { + $PDO_options = array( + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC + ); + + $dsn = $this->_dbsm . ":host=" . $this->_host . ";dbname=" . $this->_db_name; + $this->_PDO = ($this->_PDO) ? $this->_PDO : new PDO($dsn, $this->_user, $this->_password,$PDO_options); + return $this->_PDO; + } + + private function closeConnection() + { + unset($this->_PDO); + $this->_PDO = null; + } + + public function dropTable() + { + $conn = $this->getConnection(); + $conn->prepare("DROP TABLE IF EXISTS `$this->_table_name`;")->execute(); + $this->closeConnection(); + } + + public function resetTable() + { + $this->dropTable(); + $conn = $this->getConnection(); + $sql = "CREATE TABLE `$this->_table_name`("; + $f = $this->_fields; + $fieldsCount = count($f); + $elNumb = 1; + + foreach($f as $name=>$type) { + $sql .= "`$name` $type"; + if ($elNumb++ != $fieldsCount) + $sql .= ","; + } + $sql .= ");"; + + $conn->prepare($sql)->execute(); + $this->closeConnection(); + } + + public function insertDataFromJSON($data){ + $f = $this->_fields; + $fieldsCount = count($f); + + $sql = "INSERT INTO `$this->_table_name`("; + + $elNumb = 1; + foreach($f as $name=>$type) { + $sql .= "`$name`"; + if ($elNumb++ != $fieldsCount) + $sql .= ","; + } + + $sql.= ") VALUES "; + + $evsCount = count($data); + for($i = 0; $i < $evsCount; $i++) { + $sql .= "("; + $event = $data[$i]; + $elNumb = 1; + foreach($f as $name=>$type) { + $sql .= isset($event[$name]) && !is_null($event[$name]) ? "'".$event[$name]."'":"NULL"; + + if ($elNumb++ != $fieldsCount) + $sql .= ","; + } + $sql.=")"; + if($i + 1 != $evsCount) + $sql.=","; + } + $sql .= ";"; + + $conn = $this->getConnection(); + $conn->prepare($sql)->execute(); + $this->closeConnection(); + } + + public function getDataFromBase($id = NULL){ + $sql = "SELECT * FROM $this->_table_name"; + if(!is_null($id)){ + $sql .= " WHERE id=$id"; + } + $conn = $this->getConnection()->prepare($sql); + $conn->execute(); + $data = $conn->fetchAll(); + $this->closeConnection(); + return $data; + } +}
\ No newline at end of file diff --git a/tests/TestConfig.php b/tests/TestConfig.php new file mode 100644 index 0000000..1a15f09 --- /dev/null +++ b/tests/TestConfig.php @@ -0,0 +1,20 @@ +<?php + +class TestConfig +{ + const DBSM = "mysql"; + const HOST = "localhost"; + const USER = "root"; + const PASSWORD = "root"; + const DB_NAME = "scheduler"; + const TEMP_TABLE_NAME = "temp_table_20160315"; + public static $fields = array( + "id" => "INT(11) DEFAULT NULL", + "start_date" => "DATETIME NOT NULL", + "end_date" => "DATETIME NOT NULL", + "text" => "VARCHAR(255) NOT NULL", + "rec_type" => "VARCHAR(50) DEFAULT NULL", + "event_length" => " BIGINT(20) DEFAULT NULL", + "event_pid" => "INT(11) DEFAULT NULL" + ); +}
\ No newline at end of file diff --git a/tests/TestDataHelper.php b/tests/TestDataHelper.php new file mode 100644 index 0000000..99acc1c --- /dev/null +++ b/tests/TestDataHelper.php @@ -0,0 +1,129 @@ +<?php +require_once "TestConfig.php"; + +class TestDataHelper +{ + const DATA_FOLDER_PREFIX = "Data_"; + const SOURCE_NAME = "source.json"; + const TARGET_NAME = "target.json"; + + private $_dataFolder; + + private function getJSONDataFromFile($name, $type) + { + $file = dirname(__FILE__) . "/" . $this->_dataFolder . "/" . $name . "/" . $type; + if (!file_exists($file)) return null; + + return json_decode(file_get_contents($file),true); + } + + private function correctNoEndRecType($type){ + $noPos = strpos($type, "#no"); + if($noPos){ + $type = substr_replace($type, "", $noPos + 1); + } + return $type; + } + + public function __construct($testName) + { + $this->_dataFolder = self::DATA_FOLDER_PREFIX . $testName; + } + + public function getTestDataList() + { + $dir = dirname(__FILE__) . "/" . $this->_dataFolder; + if (!file_exists($dir)) return null; + $folderItems = scandir($dir); + $folders = array(); + foreach ($folderItems as $item) { + if ($item === '.' || $item === '..') continue; + if (is_dir($dir . "/" . $item)) + array_push($folders, $item); + } + return $folders; + } + + public function getTestSourceData($name) + { + return $this->getJSONDataFromFile($name, self::SOURCE_NAME); + } + + public function getTestTargetData($name) + { + return $this->getJSONDataFromFile($name, self::TARGET_NAME); + } + + public function compareDataObjects($helperObj, $schedObj, $fields) + { + foreach($fields as $key=>$value) { + $hVal = isset($helperObj[$key]) ? $helperObj[$key] : ""; + $sVal = isset($schedObj[$key]) ? $schedObj[$key] : ""; + if ($key == "rec_type") { + $sVal = $this->correctNoEndRecType($sVal); + $hVal = $this->correctNoEndRecType($hVal); + } elseif ($key == "event_length" || $key == "event_pid") { + $sVal = $sVal == 0 ? "" : $sVal; + $hVal = $hVal == 0 ? "" : $hVal; + } + if ($hVal != $sVal) { + return false; + } + } + return true; + } + + public function compareDataBunches($helperData, $schedData, $fields) + { + $helpLength = count($helperData); + $schedLength = count($schedData); + + if($helpLength != $schedLength) return false; + + for($i = 0; $i < $helpLength; $i++){ + $objHasSame = false; + for($j = 0; $j < $schedLength; $j++){ + if($this->compareDataObjects($helperData[$i], $schedData[$j], $fields)) { + array_splice($schedData, $j, 1); + $schedLength = count($schedData); + $objHasSame = true; + break; + } + } + if(!$objHasSame){ + return false; + } + } + + return true; + } + + public function writeObjectToFile($obj, $name, $bunch="") + { + ob_start(); + var_dump($obj); + $output = ob_get_clean(); + if ($bunch) + $bunch = "/$bunch"; + $file = dirname(__FILE__) . "/" . $this->_dataFolder . $bunch . "/" . $name; + file_put_contents($file, $output); + } + + public function prepateDataForHelper($data, $helper) + { + foreach ($data as &$event) { + if (!isset($event["end_date"]) && isset($event["recurring_type"]) && isset($event["length"])) { + $event["end_date"] = $helper->getRecurringEndDateStr($event["recurring_type"], $event["start_date"], $event["length"]); + } + } + + return $data; + } + + public function saveDataWithHelper($data, $helper) + { + foreach($data as $event){ + $helper->saveData($event); + } + } +}
\ No newline at end of file |