public function AdminSettingsTest::testSkipQueueOnCron in Sparkpost email 8.2
Test that queue is not processed on cron, if indicated by settings.
File
- tests/src/ Functional/ AdminSettingsTest.php, line 89 
Class
- AdminSettingsTest
- Test basic functionality.
Namespace
Drupal\Tests\sparkpost\FunctionalCode
public function testSkipQueueOnCron() {
  \Drupal::configFactory()
    ->getEditable('sparkpost.settings')
    ->set('skip_cron', FALSE)
    ->set('async', TRUE)
    ->save();
  /** @var \Drupal\Core\Queue\QueueInterface $queue */
  $queue = \Drupal::queue('sparkpost_send');
  // Create a dummy item.
  $queue
    ->createItem($this
    ->createDummyMessage());
  self::assertEquals($queue
    ->numberOfItems(), 1);
  // Run cron.
  /** @var \Drupal\Core\Cron $cron */
  $cron = \Drupal::service('cron');
  $cron
    ->run();
  // Should have processed the item.
  self::assertEquals($queue
    ->numberOfItems(), 0);
  \Drupal::configFactory()
    ->getEditable('sparkpost.settings')
    ->set('skip_cron', TRUE)
    ->save();
  // We also need to clear the cache.
  \Drupal::service('plugin.cache_clearer')
    ->clearCachedDefinitions();
  $queue
    ->createItem($this
    ->createDummyMessage());
  self::assertEquals($queue
    ->numberOfItems(), 1);
  // Run cron.
  $cron
    ->run();
  // Should not have processed the item.
  self::assertEquals($queue
    ->numberOfItems(), 1);
}