settings = SettingsController::getInstance(); $this->cron_helper = ContainerWrapper::getInstance()->get(CronHelper::class); } function testItCanRun() { $data = [ 'token' => 123, ]; $this->settings->set(CronHelper::DAEMON_SETTING, $data); $daemon = new Daemon($this->createWorkersFactoryMock(), $this->cron_helper); $daemon->run($data); } function _after() { $this->di_container->get(SettingsRepository::class)->truncate(); } private function createWorkersFactoryMock(array $workers = []) { return $this->make(WorkersFactory::class, $workers + [ 'createScheduleWorker' => $this->createSimpleWorkerMock(), 'createQueueWorker' => $this->createSimpleWorkerMock(), 'createStatsNotificationsWorker' => $this->createSimpleWorkerMock(), 'createStatsNotificationsWorkerForAutomatedEmails' => $this->createSimpleWorkerMock(), 'createSendingServiceKeyCheckWorker' => $this->createSimpleWorkerMock(), 'createPremiumKeyCheckWorker' => $this->createSimpleWorkerMock(), 'createBounceWorker' => $this->createSimpleWorkerMock(), 'createMigrationWorker' => $this->createSimpleWorkerMock(), 'createWooCommerceSyncWorker' => $this->createSimpleWorkerMock(), 'createExportFilesCleanupWorker' => $this->createSimpleWorkerMock(), 'createInactiveSubscribersWorker' => $this->createSimpleWorkerMock(), 'createAuthorizedSendingEmailsCheckWorker' => $this->createSimpleWorkerMock(), 'createWooCommercePastOrdersWorker' => $this->createSimpleWorkerMock(), 'createBeamerkWorker' => $this->createSimpleWorkerMock(), ]); } private function createSimpleWorkerMock() { return $this->makeEmpty(SimpleWorker::class, [ 'process' => Expected::once(), ]); } }