acquia_dam-1.0.0-rc1/tests/src/Kernel/AssetRepositoryTest.php

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

declare(strict_types=1);

namespace Drupal\Tests\acquia_dam\Kernel;

use Drupal\acquia_dam\AssetRepository;
use Drupal\acquia_dam\Entity\MediaSourceField;
use Drupal\media\Entity\Media;
use Drupal\Tests\media\Traits\MediaTypeCreationTrait;

/**
 * Tests AssetRepository.
 *
 * @group acquia_dam
 */
final class AssetRepositoryTest extends AcquiaDamKernelTestBase {

  use MediaTypeCreationTrait {
    createMediaType as drupalCreateMediaType;
  }

  /**
   * Tests importing ids.
   *
   * @dataProvider providerImportIds
   */
  public function testImport(array $selected_ids, array $expected_ids): void {
    $this->drupalSetUpCurrentUser();
    $this->setDamSiteToken();

    $this->createPdfMediaType();

    /** @var \Drupal\acquia_dam\AssetRepository $instance */
    $instance = $this->container->get('acquia_dam.asset_repository');
    self::assertInstanceOf(AssetRepository::class, $instance);

    $imported_ids = $instance->import($selected_ids);
    self::assertEquals($expected_ids, $imported_ids);
  }

  /**
   * Import IDs provider.
   */
  public function providerImportIds() {
    yield 'empty no fail' => [
      [],
      [],
    ];
    yield 'import' => [
      [
        '0324b0b2-5293-4aa0-b0aa-c85b003395e2',
      ],
      ['1'],
    ];
    yield 'import multiple' => [
      [
        '0324b0b2-5293-4aa0-b0aa-c85b003395e2',
        '4f656c07-6a08-47b3-9403-16082d2fcda2',
      ],
      ['1', '2'],
    ];
  }

  /**
   * Tests finding existing media assets ids.
   *
   * @dataProvider providerFindIds
   */
  public function testFind(array $selected_ids, array $expected_ids): void {
    $this->drupalSetUpCurrentUser();
    $this->setDamSiteToken();

    $media_type = $this->createPdfMediaType();
    Media::create([
      'bundle' => $media_type->id(),
      MediaSourceField::SOURCE_FIELD_NAME => [
        'asset_id' => 'a56fb261-8ad5-4e0d-8323-0e8a3659ed39',
      ],
    ])->save();

    Media::create([
      'bundle' => $media_type->id(),
      MediaSourceField::SOURCE_FIELD_NAME => [
        'asset_id' => 'abab96ac-c2ed-40b1-aaf7-56a52f898230',
      ],
    ])->save();

    /** @var \Drupal\acquia_dam\AssetRepository $instance */
    $instance = $this->container->get('acquia_dam.asset_repository');
    self::assertInstanceOf(AssetRepository::class, $instance);

    $existing_ids = $instance->find($selected_ids);
    self::assertEquals($expected_ids, $existing_ids);
  }

  /**
   * Find IDs provider.
   */
  public function providerFindIds() {
    yield 'empty no fail' => [
      [],
      [],
    ];
    yield 'not existing' => [
      [
        '0324b0b2-5293-4aa0-b0aa-c85b003395e2',
      ],
      [],
    ];
    yield 'find existing' => [
      [
        'a56fb261-8ad5-4e0d-8323-0e8a3659ed39',
      ],
      ['1'],
    ];
    yield 'find existing multiple' => [
      [
        'a56fb261-8ad5-4e0d-8323-0e8a3659ed39',
        'abab96ac-c2ed-40b1-aaf7-56a52f898230',
      ],
      ['1', '2'],
    ];
  }

}

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

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