data_pipelines-1.x-dev/tests/src/Traits/DatasetTestProcessingTrait.php

tests/src/Traits/DatasetTestProcessingTrait.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\data_pipelines\Traits;

use Drupal\data_pipelines\Destination\ProcessingOperation;

/**
 * Dataset Processing Trait.
 */
trait DatasetTestProcessingTrait {

  /**
   * Processes the data pipeline queue.
   *
   * @param string $queue_id
   *   The queue ID.
   * @param string $destination_id
   *   The destination ID.
   * @param array $operations
   *   The array of all the queued operations.
   */
  protected function processQueue(string $queue_id, string $destination_id, array $operations): void {
    /** @var \Drupal\Core\Queue\QueueWorkerInterface $queue_worker */
    $queue_worker = \Drupal::service('plugin.manager.queue_worker')->createInstance($queue_id);
    $process_queue = \Drupal::queue($queue_id);
    while ($process_queue->numberOfItems()) {
      $item = $process_queue->claimItem();
      $data = $item->data;
      assert($data instanceof ProcessingOperation);
      $this->assertEquals(current($operations), $data->getOperation());
      $this->assertEquals($destination_id, $data->getDestinationId());
      next($operations);
      $queue_worker->processItem($data);
      $process_queue->deleteItem($item);
    }
  }

  /**
   * Processes the data pipeline queue.
   *
   * @param string $queue_id
   *   The queue ID.
   * @param string $destination_id
   *   The destination ID.
   * @param array $operations
   *   The array of all the queued operations.
   */
  protected function processQueueWithWait(string $queue_id, string $destination_id, array $operations): void {
    $this->processQueue($queue_id, $destination_id, $operations);
    // Let ES/OS container do its thing.
    sleep(1);

  }

}

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

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