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

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

namespace Drupal\Tests\media_acquiadam\Unit;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\media_acquiadam\Acquiadam;
use Drupal\media_acquiadam\AssetDataInterface;
use Drupal\media_acquiadam\Client;
use Drupal\media_acquiadam\Entity\Asset;
use Drupal\Tests\media_acquiadam\Traits\AcquiadamAssetDataTrait;
use Drupal\Tests\media_acquiadam\Traits\AcquiadamConfigTrait;
use Drupal\Tests\media_acquiadam\Traits\AcquiadamLoggerFactoryTrait;
use Drupal\Tests\UnitTestCase;

/**
 * Acquia DAM REST extension tests.
 *
 * @group media_acquiadam
 */
class AcquiadamServiceTest extends UnitTestCase {

  use AcquiadamConfigTrait, AcquiadamLoggerFactoryTrait, AcquiadamAssetDataTrait;

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

  /**
   * Acquia DAM client.
   *
   * @var \Drupal\media_acquiadam\Acquiadam
   */
  protected $acquiaDamClient;

  /**
   * Validate the static cache helper works as expected.
   */
  public function testStaticAssetCache() {
    $asset = $this->getAssetData();

    $this->assertNull($this->acquiaDamClient->staticAssetCache('get',
      $asset->id));

    $this->acquiaDamClient->staticAssetCache('set', $asset->id, FALSE);
    $this->assertFalse($this->acquiaDamClient->staticAssetCache('get',
      $asset->id));

    $this->acquiaDamClient->staticAssetCache('set', $asset->id, $asset);
    $this->assertInstanceOf(Asset::class,
      $this->acquiaDamClient->staticAssetCache('get', $asset->id));

    $this->acquiaDamClient->staticAssetCache('clear');
    $this->assertNull($this->acquiaDamClient->staticAssetCache('get',
      $asset->id));
  }

  /**
   * Validates we can fetch an asset.
   */
  public function testGetAsset() {
    $asset = $this->getAssetData();

    // No assets should be primed.
    $this->assertNull($this->acquiaDamClient->staticAssetCache('get',
      $asset->id));

    // Asset should be primed.
    $this->assertInstanceOf(Asset::class,
      $this->acquiaDamClient->getAsset($asset->id));
    $this->assertInstanceOf(Asset::class,
      $this->acquiaDamClient->staticAssetCache('get', $asset->id));

    // Simulate a cached failed fetch.
    $this->acquiaDamClient->staticAssetCache('set', $asset->id, FALSE);
    $this->assertFalse($this->acquiaDamClient->getAsset($asset->id));

  }

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

    $dam_client = $this->createMock(Client::class);
    $dam_client->expects($this->any())
      ->method('getCategoryData')
      ->willReturnCallback(function ($category) {
        return $this->getCategoryData($category);
      });

    $dam_client->expects($this->any())
      ->method('getAsset')
      ->willReturnCallback(function () {
        return $this->getAssetData();
      });
    $acquiadam_asset_data = $this->createMock(AssetDataInterface::class);

    $this->container = new ContainerBuilder();
    $this->container->set('logger.factory', $this->getLoggerFactoryStub());
    $this->container->set('media_acquiadam.client',
      $dam_client);
    $this->container->set('media_acquiadam.asset_data', $acquiadam_asset_data);
    \Drupal::setContainer($this->container);

    $this->acquiaDamClient = Acquiadam::create($this->container);
  }

  /**
   * {@inheritdoc}
   */
  public function tearDown(): void {
    parent::tearDown();
    // Reset the static cache because it will persist between tests.
    $this->acquiaDamClient->staticAssetCache('clear');
  }

}

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

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