/** * @covers ::setConfig * @covers ::getConfig */ public function testSetConfig() { $jobby = new Jobby(); $oldCfg = $jobby->getConfig(); $jobby->setConfig(['dateFormat' => 'foo bar']); $newCfg = $jobby->getConfig(); $this->assertEquals(count($oldCfg), count($newCfg)); $this->assertEquals('foo bar', $newCfg['dateFormat']); }
use Psr\Log\LoggerInterface as Logger; use DI\ContainerBuilder; use Standard\Controllers\Cron\BetterBackgroundJob; require __DIR__ . '/../vendor/autoload.php'; $containerBuilder = new ContainerBuilder(); $container = $containerBuilder->addDefinitions(require_once __DIR__ . '/../app/config/config_cli.php')->useAnnotations(true)->build(); try { $crons = TableRegistry::get('Cron')->find()->hydrate(false)->toArray(); $settings = TableRegistry::get('CronSettings')->find()->hydrate(false)->toArray()[0]; } catch (\Exception $e) { $container->get(Logger::class)->error('Error while fetching DB contents: ' . $e->getMessage()); return; } $container->set('jobby', function () use($container) { $j = new Jobby($container->get('cron-config')['emails'] ? ['mailer' => 'smtp', 'smtpUsername' => getenv('MAILGUN_SMTP_LOGIN'), 'smtpPassword' => getenv('MAILGUN_SMTP_PASS'), 'smtpHost' => getenv('MAILGUN_SMTP_HOST')] : []); $j->setConfig(['jobClass' => BetterBackgroundJob::class]); return $j; }); /** @var array $cron */ foreach ($crons as $cron) { $cron = array_merge($settings, array_filter($cron)); $jobName = $cron['name']; unset($cron['name']); $cron['output'] = $cron['output'] ?? false ? $container->get('site-config')['logFolder'] . '/' . $cron['output'] : $container->get('site-config')['logFolder'] . '/cron.log'; try { if (strpos($cron['command'], '::')) { // Assuming it's a Class::method syntax list($class, $method) = explode('::', $cron['command']); $cron['command'] = function () use($class, $method) { $containerBuilder = new ContainerBuilder(); $container = $containerBuilder->addDefinitions(require_once __DIR__ . '/../app/config/config_cli.php')->useAnnotations(true)->build();
/** * @covers Jobby\Jobby::setConfig * @covers Jobby\Jobby::getConfig */ public function testSetConfig() { $jobby = new Jobby(); $oldCfg = $jobby->getConfig(); $jobby->setConfig(array("dateFormat" => "foo bar")); $newCfg = $jobby->getConfig(); $this->assertEquals(count($oldCfg), count($newCfg)); $this->assertEquals("foo bar", $newCfg["dateFormat"]); }