redis-8.x-1.x-dev/tests/src/Kernel/RedisQueueTest.php

tests/src/Kernel/RedisQueueTest.php
<?php

namespace Drupal\Tests\redis\Kernel;

use Drupal\KernelTests\Core\Queue\QueueTest as CoreQueueTest;
use Drupal\redis\Queue\RedisQueue;
use Drupal\redis\Queue\ReliableRedisQueue;
use Drupal\Tests\redis\Traits\RedisTestInterfaceTrait;

/**
 * Tests the Redis queue functions.
 *
 * @group redis
 */
class RedisQueueTest extends CoreQueueTest {

  use RedisTestInterfaceTrait;

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = ['redis'];

  /**
   * Tests Redis non-blocking queue.
   */
  public function testRedisNonBlockingQueue(): void {
    self::setUpSettings();
    $client_factory = \Drupal::service('redis.factory');
    $settings = ['reserve_timeout' => NULL];

    $queue1 = new RedisQueue($this->randomMachineName(), $settings, $client_factory->getClient());
    $queue1->createQueue();

    $queue2 = new RedisQueue($this->randomMachineName(), $settings, $client_factory->getClient());
    $queue2->createQueue();

    $this->runQueueTest($queue1, $queue2);
    $queue1->deleteQueue();
    $queue2->deleteQueue();

    /** @var \Drupal\Core\Queue\QueueInterface $queue1 */
    $queue1 = new ReliableRedisQueue($this->randomMachineName(), $settings, $client_factory->getClient());
    $queue1->createQueue();

    /** @var \Drupal\Core\Queue\QueueInterface $queue2 */
    $queue2 = new ReliableRedisQueue($this->randomMachineName(), $settings, $client_factory->getClient());
    $queue2->createQueue();

    $this->runQueueTest($queue1, $queue2);
  }

  /**
   * Tests Redis blocking queue.
   */
  public function testRedisBlockingQueue(): void {
    self::setUpSettings();
    // Create two queues.
    $client_factory = \Drupal::service('redis.factory');
    $settings = ['reserve_timeout' => 30];

    /** @var \Drupal\Core\Queue\QueueInterface $queue1 */
    $queue1 = new RedisQueue($this->randomMachineName(), $settings, $client_factory->getClient());
    $queue1->createQueue();

    /** @var \Drupal\Core\Queue\QueueInterface $queue2 */
    $queue2 = new RedisQueue($this->randomMachineName(), $settings, $client_factory->getClient());
    $queue2->createQueue();

    $this->runQueueTest($queue1, $queue2);
  }

  /**
   * Overrides \Drupal\system\Tests\Queue\QueueTestQueueTest::testSystemQueue().
   *
   * We override tests from core class we extend to prevent them from running.
   */
  public function testSystemQueue(): void {
    $this->markTestSkipped();
  }

  /**
   * Overrides \Drupal\system\Tests\Queue\QueueTestQueueTest::testMemoryQueue().
   *
   * We override tests from core class we extend to prevent them from running.
   */
  public function testMemoryQueue(): void {
    $this->markTestSkipped();
  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc