Fix DaemonTest for rewritten Daemon

[MAILPOET-2017]
This commit is contained in:
Jan Jakeš
2019-05-01 09:05:52 +02:00
committed by M. Shull
parent 75288ad023
commit 835c8d2d26

View File

@@ -1,10 +1,11 @@
<?php <?php
namespace MailPoet\Test\Cron; namespace MailPoet\Test\Cron;
use Codeception\Stub;
use Codeception\Stub\Expected; use Codeception\Stub\Expected;
use MailPoet\Cron\CronHelper; use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Daemon; use MailPoet\Cron\Daemon;
use MailPoet\Cron\Workers\SimpleWorker;
use MailPoet\Cron\Workers\WorkersFactory;
use MailPoet\Models\Setting; use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController; use MailPoet\Settings\SettingsController;
@@ -20,27 +21,36 @@ class DaemonTest extends \MailPoetTest {
} }
function testItCanRun() { function testItCanRun() {
$daemon = Stub::make(Daemon::class, array(
// workers should be executed
'executeScheduleWorker' => Expected::exactly(1),
'executeQueueWorker' => Expected::exactly(1),
'executeMigrationWorker' => Expected::exactly(1),
'executeStatsNotificationsWorker' => Expected::exactly(1),
'executeSendingServiceKeyCheckWorker' => Expected::exactly(1),
'executePremiumKeyCheckWorker' => Expected::exactly(1),
'executeBounceWorker' => Expected::exactly(1),
'executeExportFilesCleanupWorker' => Expected::exactly(1),
'executeInactiveSubscribersWorker' => Expected::exactly(1),
'executeWooCommerceSyncWorker' => Expected::exactly(1),
), $this);
$data = array( $data = array(
'token' => 123 'token' => 123
); );
$this->settings->set(CronHelper::DAEMON_SETTING, $data); $this->settings->set(CronHelper::DAEMON_SETTING, $data);
$daemon = new Daemon($this->settings, $this->createWorkersFactoryMock());
$daemon->run($data); $daemon->run($data);
} }
function _after() { function _after() {
\ORM::raw_execute('TRUNCATE ' . Setting::$_table); \ORM::raw_execute('TRUNCATE ' . Setting::$_table);
} }
private function createWorkersFactoryMock(array $workers = []) {
return $this->make(WorkersFactory::class, $workers + [
'createScheduleWorker' => $this->createSimpleWorkerMock(),
'createQueueWorker' => $this->createSimpleWorkerMock(),
'createStatsNotificationsWorker' => $this->createSimpleWorkerMock(),
'createSendingServiceKeyCheckWorker' => $this->createSimpleWorkerMock(),
'createPremiumKeyCheckWorker' => $this->createSimpleWorkerMock(),
'createBounceWorker' => $this->createSimpleWorkerMock(),
'createMigrationWorker' => $this->createSimpleWorkerMock(),
'createWooCommerceSyncWorker' => $this->createSimpleWorkerMock(),
'createExportFilesCleanupWorker' => $this->createSimpleWorkerMock(),
'createInactiveSubscribersWorker' => $this->createSimpleWorkerMock(),
]);
}
private function createSimpleWorkerMock() {
return $this->makeEmpty(SimpleWorker::class, [
'process' => Expected::once(),
]);
}
} }