function CronQueueTest::testQueueWorkerManagerSafeguard
Same name in other branches
- 9 core/modules/system/tests/src/Kernel/System/CronQueueTest.php \Drupal\Tests\system\Kernel\System\CronQueueTest::testQueueWorkerManagerSafeguard()
- 11.x core/modules/system/tests/src/Kernel/System/CronQueueTest.php \Drupal\Tests\system\Kernel\System\CronQueueTest::testQueueWorkerManagerSafeguard()
Test safeguard against invalid annotations in QueueWorkerManager.
File
-
core/
modules/ system/ tests/ src/ Kernel/ System/ CronQueueTest.php, line 302
Class
- CronQueueTest
- Tests the Cron Queue runner.
Namespace
Drupal\Tests\system\Kernel\SystemCode
public function testQueueWorkerManagerSafeguard() : void {
$queue_worker_manager = $this->container
->get('plugin.manager.queue_worker');
$plugin_id = 'test_plugin_id';
// Ensure if no cron annotation is provided, none is added.
$definition = [];
$queue_worker_manager->processDefinition($definition, $plugin_id);
$this->assertArrayNotHasKey('cron', $definition);
// Ensure if an empty cron annotation is provided, the default lease time is
// added.
$definition = [
'cron' => [],
];
$queue_worker_manager->processDefinition($definition, $plugin_id);
$this->assertArrayHasKey('time', $definition['cron']);
$this->assertEquals(QueueWorkerManagerInterface::DEFAULT_QUEUE_CRON_TIME, $definition['cron']['time']);
// Ensure if an invalid lease time (less-than 1 second) is provided, it is
// overridden with the default lease time.
$definition = [
'cron' => [
'time' => 0,
],
];
$queue_worker_manager->processDefinition($definition, $plugin_id);
$this->assertEquals(QueueWorkerManagerInterface::DEFAULT_QUEUE_CRON_TIME, $definition['cron']['time']);
$definition = [
'cron' => [
'time' => -1,
],
];
$queue_worker_manager->processDefinition($definition, $plugin_id);
$this->assertEquals(QueueWorkerManagerInterface::DEFAULT_QUEUE_CRON_TIME, $definition['cron']['time']);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.