media_mpx-8.x-1.x-dev/tests/src/Unit/Service/QueueVideoImportsResponseTest.php

tests/src/Unit/Service/QueueVideoImportsResponseTest.php
<?php

namespace Drupal\Tests\media_mpx\Unit\Service;

use Drupal\media_mpx\Service\QueueMpxImportResult;
use Drupal\media_mpx\Service\QueueVideoImportsResponse;
use Drupal\Tests\UnitTestCase;
use GuzzleHttp\Promise\Promise;
use GuzzleHttp\Psr7\Uri;
use Lullabot\Mpx\DataService\Media\Media;
use Lullabot\Mpx\DataService\ObjectList;
use Lullabot\Mpx\DataService\ObjectListIterator;

/**
 * Tests response objects from the QueueVideoImport service.
 *
 * @group media_mpx
 * @coversDefaultClass \Drupal\media_mpx\Service\QueueVideoImportsResponse
 */
class QueueVideoImportsResponseTest extends UnitTestCase {

  /**
   * @covers ::getQueuedVideos
   * @dataProvider mpxImportResults
   */
  public function testGetQueuedVideos($import_results, $succesful_results, $failed_results) {
    $iterator = $this->getDummyIterator();

    $queue_service_response = new QueueVideoImportsResponse($import_results, $iterator);
    $this->assertEquals($succesful_results, $queue_service_response->getQueuedVideos());
  }

  /**
   * @covers ::getNotQueuedVideos
   * @dataProvider mpxImportResults
   */
  public function testGetNotQueuedVideos($import_results, $succesful_results, $failed_results) {
    $iterator = $this->getDummyIterator();

    $queue_service_response = new QueueVideoImportsResponse($import_results, $iterator);
    $this->assertEquals($failed_results, $queue_service_response->getNotQueuedVideos());
  }

  /**
   * Returns a Dummy mpx ObjectListIterator.
   *
   * @return \Lullabot\Mpx\DataService\ObjectListIterator
   *   A dummy iterator for usage in QueueVideoImportsResponse tests.
   */
  private function getDummyIterator(): ObjectListIterator {
    $list = new ObjectList();
    $promise = new Promise();
    $promise->resolve($list);
    $iterator = new ObjectListIterator($promise);
    return $iterator;
  }

  /**
   * Data provider to test queue video import service responses.
   *
   * @return array
   *   An array of test cases. Each case provides:
   *     - The array of queue import results objects (succesful and failed).
   *     - An array of queue import result objects that could be queued.
   *     - An array of queue import result objects that couldn't be queued.
   */
  public function mpxImportResults() {
    $split_entries = [];
    $import_results = [];
    for ($i = 0; $i <= 10; $i++) {
      $media_item = new Media();
      $id = new Uri('http://data.media.theplatform.com/media/data/Media/' . rand(1, 1000));
      $media_item->setId($id);

      $succesful = !(bool) $i % 2;
      $import_results[$i] = new QueueMpxImportResult($media_item, $succesful);
      if ($succesful) {
        $split_entries['succesful'][] = $media_item;
      }
      else {
        $split_entries['failed'][] = $media_item;
      }
    }

    return [
      'Single Test Case' => [
        $import_results,
        $split_entries['succesful'],
        $split_entries['failed'],
      ],
    ];
  }

}

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

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