Uses predetermined timestamps from which next run date is calculated
This commit is contained in:
@@ -330,8 +330,9 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
||||||
->where('option_field_id', $newsletter_option_field->id)
|
->where('option_field_id', $newsletter_option_field->id)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect(Scheduler::getNextRunDate($newsletter_option->value))
|
$current_time = 1483275600; // Sunday, 1 January 2017 @ 1:00pm (UTC)
|
||||||
->contains('14:00:00');
|
expect(Scheduler::getNextRunDate($newsletter_option->value, $current_time))
|
||||||
|
->equals('2017-01-01 14:00:00');
|
||||||
|
|
||||||
// weekly notification is scheduled every Tuesday at 14:00
|
// weekly notification is scheduled every Tuesday at 14:00
|
||||||
$newsletter = (object)array(
|
$newsletter = (object)array(
|
||||||
@@ -347,11 +348,9 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
||||||
->where('option_field_id', $newsletter_option_field->id)
|
->where('option_field_id', $newsletter_option_field->id)
|
||||||
->findOne();
|
->findOne();
|
||||||
$next_run_date = ($current_time->dayOfWeek === Carbon::TUESDAY && $current_time->hour < 14) ?
|
$current_time = 1483275600; // Sunday, 1 January 2017 @ 1:00pm (UTC)
|
||||||
$current_time :
|
expect(Scheduler::getNextRunDate($newsletter_option->value, $current_time))
|
||||||
$current_time->next(Carbon::TUESDAY);
|
->equals('2017-01-03 14:00:00');
|
||||||
expect(Scheduler::getNextRunDate($newsletter_option->value))
|
|
||||||
->equals($next_run_date->format('Y-m-d 14:00:00'));
|
|
||||||
|
|
||||||
// monthly notification is scheduled every 20th day at 14:00
|
// monthly notification is scheduled every 20th day at 14:00
|
||||||
$newsletter = (object)array(
|
$newsletter = (object)array(
|
||||||
@@ -363,12 +362,12 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
'timeOfDay' => 50400 // 14:00
|
'timeOfDay' => 50400 // 14:00
|
||||||
);
|
);
|
||||||
Scheduler::processPostNotificationSchedule($newsletter);
|
Scheduler::processPostNotificationSchedule($newsletter);
|
||||||
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
|
||||||
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
||||||
->where('option_field_id', $newsletter_option_field->id)
|
->where('option_field_id', $newsletter_option_field->id)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect(Scheduler::getNextRunDate($newsletter_option->value))
|
$current_time = 1483275600; // Sunday, 1 January 2017 @ 1:00pm (UTC)
|
||||||
->contains('-19 14:00:00');
|
expect(Scheduler::getNextRunDate($newsletter_option->value, $current_time))
|
||||||
|
->equals('2017-01-19 14:00:00');
|
||||||
|
|
||||||
// monthly notification is scheduled every last Saturday at 14:00
|
// monthly notification is scheduled every last Saturday at 14:00
|
||||||
$newsletter = (object)array(
|
$newsletter = (object)array(
|
||||||
@@ -380,17 +379,12 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
'timeOfDay' => 50400 // 14:00
|
'timeOfDay' => 50400 // 14:00
|
||||||
);
|
);
|
||||||
Scheduler::processPostNotificationSchedule($newsletter);
|
Scheduler::processPostNotificationSchedule($newsletter);
|
||||||
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
|
||||||
$next_run_date = (
|
|
||||||
$current_time->day <= $current_time->lastOfMonth(Carbon::SATURDAY)->day &&
|
|
||||||
$current_time->hour < '14'
|
|
||||||
) ? $current_time->lastOfMonth(Carbon::SATURDAY)
|
|
||||||
: $current_time->copy()->addMonth()->lastOfMonth(Carbon::SATURDAY);
|
|
||||||
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
||||||
->where('option_field_id', $newsletter_option_field->id)
|
->where('option_field_id', $newsletter_option_field->id)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect(Scheduler::getNextRunDate($newsletter_option->value))
|
$current_time = 1485694800; // Sunday, 29 January 2017 @ 1:00pm (UTC)
|
||||||
->equals($next_run_date->format('Y-m-d 14:00:00'));
|
expect(Scheduler::getNextRunDate($newsletter_option->value, $current_time))
|
||||||
|
->equals('2017-02-25 14:00:00');
|
||||||
|
|
||||||
// notification is scheduled immediately (next minute)
|
// notification is scheduled immediately (next minute)
|
||||||
$newsletter = (object)array(
|
$newsletter = (object)array(
|
||||||
@@ -402,12 +396,12 @@ class NewsletterSchedulerTest extends MailPoetTest {
|
|||||||
'timeOfDay' => null
|
'timeOfDay' => null
|
||||||
);
|
);
|
||||||
Scheduler::processPostNotificationSchedule($newsletter);
|
Scheduler::processPostNotificationSchedule($newsletter);
|
||||||
$current_time = Carbon::createFromTimestamp(current_time('timestamp'));
|
|
||||||
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
$newsletter_option = NewsletterOption::where('newsletter_id', $newsletter->id)
|
||||||
->where('option_field_id', $newsletter_option_field->id)
|
->where('option_field_id', $newsletter_option_field->id)
|
||||||
->findOne();
|
->findOne();
|
||||||
expect(Scheduler::getNextRunDate($newsletter_option->value))
|
$current_time = 1483275600; // Sunday, 1 January 2017 @ 1:00pm (UTC)
|
||||||
->equals($current_time->addMinute()->format('Y-m-d H:i:00'));
|
expect(Scheduler::getNextRunDate($newsletter_option->value, $current_time))
|
||||||
|
->equals('2017-01-01 13:01:00');
|
||||||
}
|
}
|
||||||
|
|
||||||
function _createQueue(
|
function _createQueue(
|
||||||
|
Reference in New Issue
Block a user