media_acquiadam-8.x-1.46/tests/src/Unit/AcquiadamAssetTest.php

tests/src/Unit/AcquiadamAssetTest.php
<?php

namespace Drupal\Tests\media_acquiadam\Unit;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\Entity\EntityFieldManagerInterface;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Core\Field\FieldTypePluginManagerInterface;
use Drupal\media_acquiadam\MediaEntityHelper;
use Drupal\media_acquiadam\Plugin\media\Source\AcquiadamAsset;
use Drupal\media_acquiadam\Service\AssetImageHelper;
use Drupal\media_acquiadam\Service\AssetMediaFactory;
use Drupal\media_acquiadam\Service\AssetMetadataHelper;
use Drupal\Tests\media_acquiadam\Traits\AcquiadamAssetDataTrait;
use Drupal\Tests\media_acquiadam\Traits\AcquiadamConfigTrait;
use Drupal\Tests\media_acquiadam\Traits\AcquiadamMockedMediaEntityTrait;
use Drupal\Tests\UnitTestCase;

/**
 * Tests to validate that the Media source plugin works as expected.
 *
 * @group media_acquiadam
 */
class AcquiadamAssetTest extends UnitTestCase {

  use AcquiadamAssetDataTrait, AcquiadamConfigTrait, AcquiadamMockedMediaEntityTrait;

  /**
   * Container builder helper.
   *
   * @var \Drupal\Core\DependencyInjection\ContainerBuilder
   */
  protected $container;

  /**
   * Acquia DAM media source.
   *
   * @var \Drupal\media_acquiadam\Plugin\media\Source\AcquiadamAsset
   */
  protected $acquiadamMediaSource;

  /**
   * Validate that we can get generated metadata.
   */
  public function testGetMetadata() {
    $media = $this->getMockedMediaEntity($this->getAssetData()->id);

    $this->assertEquals('media:media_acquiadam:' . $media->uuid(),
      $this->acquiadamMediaSource->getMetadata($media, 'default_name'));
    $this->assertEquals($this->getMockedFileEntity()->id(),
      $this->acquiadamMediaSource->getMetadata($media, 'file'));
  }

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

    $entity_type_manager = $this->createMock(EntityTypeManagerInterface::class);

    $entity_field_manager = $this->createMock(EntityFieldManagerInterface::class);

    $field_type_plugin_manager = $this->createMock(FieldTypePluginManagerInterface::class);

    $asset_image_helper = $this->createMock(AssetImageHelper::class);

    $asset_metadata_helper = $this->createMock(AssetMetadataHelper::class);

    $asset_media_helper = $this->createMock(MediaEntityHelper::class);
    $asset_media_helper->method('getAsset')->willReturn($this->getAssetData());
    $asset_media_helper->method('getFile')
      ->willReturn($this->getMockedFileEntity());

    $asset_media_factory = $this->createMock(AssetMediaFactory::class);
    $asset_media_factory->method('get')->willReturn($asset_media_helper);

    $this->container = new ContainerBuilder();
    $this->container->set('entity_type.manager', $entity_type_manager);
    $this->container->set('entity_field.manager', $entity_field_manager);
    $this->container->set('plugin.manager.field.field_type',
      $field_type_plugin_manager);
    $this->container->set('config.factory', $this->getDefaultConfigFactoryStub());

    $this->container->set('media_acquiadam.asset_image.helper',
      $asset_image_helper);
    $this->container->set('media_acquiadam.asset_metadata.helper',
      $asset_metadata_helper);
    $this->container->set('media_acquiadam.asset_media.factory',
      $asset_media_factory);
    \Drupal::setContainer($this->container);

    $this->acquiadamMediaSource = AcquiadamAsset::create($this->container,
      ['source_field' => 'field_acquiadam_asset_id'],
      'acquiadam_asset',
      []);
  }

}

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

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