entity_hierarchy-8.x-2.24/modules/entity_hierarchy_microsite/tests/src/Traits/MediaTrait.php

modules/entity_hierarchy_microsite/tests/src/Traits/MediaTrait.php
<?php

namespace Drupal\Tests\entity_hierarchy_microsite\Traits;

use Drupal\file\Entity\File;
use Drupal\media\Entity\Media;
use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
use Drupal\Tests\TestFileCreationTrait;

/**
 * Defines a class for media utilties in tests.
 */
trait MediaTrait {

  use MediaTypeCreationTrait;
  use TestFileCreationTrait;

  /**
   * Create an image media entity.
   *
   * @param array $values
   *   Optional key => values to assign to the media entity.
   * @param \Drupal\file\Entity\File $file
   *   Optional file entity to use.
   *
   * @return \Drupal\media\Entity\Media
   *   A media entity.
   */
  protected function createImageMedia(array $values = [], ?File $file = NULL) {
    if (!$file) {
      $image = $this->getTestFiles('image')[0];
      $file = $this->createFile($image->uri);
    }

    $values = $values + [
      'bundle' => 'image',
      'field_media_image' => [
        'target_id' => $file->id(),
      ],
    ];

    $media = Media::create($values);
    $media->save();
    return $media;
  }

  /**
   * Creates a file entity.
   *
   * @param string $uri
   *   The file uri.
   * @param int $status
   *   The file status.
   *
   * @return \Drupal\file\FileInterface
   *   The file entity.
   */
  protected function createFile($uri, $status = 1) {
    $file = File::create([
      'uri' => $uri,
      'status' => $status,
    ]);
    $file->save();
    return $file;
  }

}

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

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