advancedqueue-8.x-1.x-dev/tests/src/Kernel/DuplicatesUnsupportedBackendTest.php

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

declare(strict_types=1);

namespace Drupal\Tests\advancedqueue\Kernel;

use Drupal\advancedqueue\Entity\Queue;
use Drupal\advancedqueue\Exception\InvalidBackendException;
use Drupal\advancedqueue\Job;
use Drupal\KernelTests\KernelTestBase;

/**
 * Tests that duplicate jobs cannot be queued.
 *
 * @group advancedqueue
 */
class DuplicatesUnsupportedBackendTest extends KernelTestBase {

  /**
   * A queue without unique job support.
   *
   * @var \Drupal\advancedqueue\Entity\QueueInterface
   */
  protected $queue;

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'advancedqueue',
    'advancedqueue_test',
  ];

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    $this->installSchema('advancedqueue', ['advancedqueue']);

    $this->queue = Queue::create([
      'id' => 'duplicates_unsupported_queue',
      'label' => 'First queue',
      'backend' => 'base_only',
    ]);
    $this->queue->save();
  }

  /**
   * Tests that a job that avoids duplicates cannot be queued.
   */
  public function testAvoidDuplicates(): void {
    // A job that does not avoid duplicates can be queued.
    $job = Job::create('simple', ['test' => '1']);
    $this->queue->enqueueJob($job);

    $job = Job::create('avoid_duplicates', ['test' => '1']);
    $this->expectException(InvalidBackendException::class);
    $this->queue->enqueueJob($job);
  }

}

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

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