You are here

MockDrupalGatherContentClient.php in GatherContent 8.5

File

tests/modules/gathercontent_test/src/MockDrupalGatherContentClient.php
View source
<?php

namespace Drupal\gathercontent_test;

use Drupal\file\Entity\File;
use Drupal\gathercontent\DrupalGatherContentClient;

/**
 * Class to mock GC client.
 */
class MockDrupalGatherContentClient extends DrupalGatherContentClient {

  /**
   * Chosen status.
   *
   * @var null|int
   */
  public static $chosenStatus = NULL;

  /**
   * Mock download.
   */
  public function downloadFiles(array $files, $directory, $language) {
    $importedFiles = [];
    foreach ($files as $file) {
      $importedFile = File::create([
        'filename' => $file->fileName,
        'uri' => $file->url,
        'status' => 1,
        'gc_id' => $file->id,
        'langcode' => $language,
        'filesize' => $file->size,
      ]);
      $importedFile
        ->save();
      $importedFiles[] = $importedFile
        ->id();
    }
    return $importedFiles;
  }

  /**
   * Mock files fetch.
   */
  public function itemFilesGet($itemId) {
    return [];
  }

  /**
   * Mock status fetch.
   */
  public function projectStatusGet($projectId, $statusId) {
    $statuses = MockData::getStatuses();
    return $statuses[$statusId];
  }

  /**
   * Mock status change.
   */
  public function itemChooseStatusPost($itemId, $statusId) {
    if (static::$chosenStatus !== NULL) {
      throw new \Exception("itemChooseStatusPost shouldn't be called twice");
    }
    static::$chosenStatus = $statusId;
  }

}

Classes

Namesort descending Description
MockDrupalGatherContentClient Class to mock GC client.