Rewrite SimpleWorkerTest to tests of particular services
[MAILPOET-2539]
This commit is contained in:
committed by
Jack Kitterhing
parent
9c02da4626
commit
04f266518b
58
tests/integration/Cron/CronWorkerSchedulerTest.php
Normal file
58
tests/integration/Cron/CronWorkerSchedulerTest.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace MailPoet\Test\Cron;
|
||||
|
||||
use MailPoet\Cron\CronWorkerScheduler;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoetVendor\Carbon\Carbon;
|
||||
use MailPoetVendor\Idiorm\ORM;
|
||||
|
||||
require_once __DIR__ . '/Workers/SimpleWorkerMockImplementation.php';
|
||||
|
||||
class CronWorkerSchedulerTest extends \MailPoetTest {
|
||||
/** @var CronWorkerScheduler */
|
||||
private $cron_worker_scheduler;
|
||||
|
||||
function _before() {
|
||||
$this->cron_worker_scheduler = $this->di_container->get(CronWorkerScheduler::class);
|
||||
ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
||||
}
|
||||
|
||||
function testItSchedulesTask() {
|
||||
$next_run_date = Carbon::now()->addWeek();
|
||||
$this->cron_worker_scheduler->schedule('test', $next_run_date);
|
||||
|
||||
$tasks = ScheduledTask::findMany();
|
||||
expect($tasks)->count(1);
|
||||
expect($tasks[0]->type)->same('test');
|
||||
expect($tasks[0]->status)->same(ScheduledTask::STATUS_SCHEDULED);
|
||||
expect($tasks[0]->scheduled_at)->same($next_run_date->format('Y-m-d H:i:s'));
|
||||
}
|
||||
|
||||
function testItDoesNotScheduleTaskTwice() {
|
||||
$next_run_date = Carbon::now()->addWeek();
|
||||
$this->cron_worker_scheduler->schedule('test', $next_run_date);
|
||||
expect(ScheduledTask::findMany())->count(1);
|
||||
|
||||
$result = $this->cron_worker_scheduler->schedule('test', $next_run_date);
|
||||
expect($result)->false();
|
||||
expect(ScheduledTask::findMany())->count(1);
|
||||
}
|
||||
|
||||
function testItReschedulesTask() {
|
||||
$next_run_date = Carbon::now()->subDay();
|
||||
$task = $this->cron_worker_scheduler->schedule('test', $next_run_date);
|
||||
$this->cron_worker_scheduler->reschedule($task, 10);
|
||||
|
||||
$tasks = ScheduledTask::findMany();
|
||||
expect($tasks)->count(1);
|
||||
expect($tasks[0]->type)->same('test');
|
||||
expect($tasks[0]->status)->same(ScheduledTask::STATUS_SCHEDULED);
|
||||
expect($tasks[0]->scheduled_at)->greaterThan($next_run_date);
|
||||
expect($tasks[0]->scheduled_at)->greaterThan(Carbon::now());
|
||||
}
|
||||
|
||||
function _after() {
|
||||
ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user