tome-8.x-1.x-dev/modules/tome_sync/tests/src/Kernel/FileSyncTest.php

modules/tome_sync/tests/src/Kernel/FileSyncTest.php
<?php

namespace Drupal\Tests\tome_sync\Kernel;

use Drupal\file\Entity\File;
use Drupal\Core\Site\Settings;
use Drupal\Core\File\FileSystemInterface;
use Drupal\Tests\tome_base\Kernel\TestBase;

/**
 * Tests that the file sync works.
 *
 * @group tome_sync
 */
class FileSyncTest extends TestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'tome_sync',
  ];

  /**
   * The file system.
   *
   * @var \Drupal\Core\File\FileSystemInterface
   */
  protected $fileSystem;

  /**
   * {@inheritdoc}
   */
  public function setUp(): void {
    parent::setUp();
    $this->fileSystem = \Drupal::service('file_system');
    $this->installSchema('tome_sync', ['tome_sync_content_hash']);
  }

  /**
   * @covers \Drupal\tome_sync\FileSync::importFiles
   */
  public function testImportFiles() {
    $directory = Settings::get('tome_files_directory') . '/public/foo';
    $this->fileSystem->prepareDirectory($directory, FileSystemInterface::CREATE_DIRECTORY);
    touch(Settings::get('tome_files_directory') . '/public/foo/example.txt');
    touch(Settings::get('tome_files_directory') . '/public/example.txt');
    \Drupal::service('tome_sync.file_sync')->importFiles();
    $this->assertTrue(file_exists('public://foo/example.txt'));
    $this->assertTrue(file_exists('public://example.txt'));
  }

  /**
   * @covers \Drupal\tome_sync\FileSync::deleteExportDirectory
   */
  public function testDeleteExportDirectory() {
    $directory = Settings::get('tome_files_directory') . '/public';
    $this->fileSystem->prepareDirectory($directory, FileSystemInterface::CREATE_DIRECTORY);
    touch($directory . '/example.txt');
    \Drupal::service('tome_sync.file_sync')->deleteExportDirectory();
    $this->assertFalse(file_exists($directory));
  }

  /**
   * @covers \Drupal\tome_sync\FileSync::deleteFile
   */
  public function testDeleteFile() {
    $directory = Settings::get('tome_files_directory') . '/public';
    $this->fileSystem->prepareDirectory($directory, FileSystemInterface::CREATE_DIRECTORY);
    touch($directory . '/example.txt');
    \Drupal::service('tome_sync.file_sync')->deleteFile('example.txt');
    $this->assertFalse(file_exists($directory . '/example.txt'));
  }

  /**
   * @covers \Drupal\tome_sync\FileSync::exportFile
   */
  public function testExportFile() {
    touch('public://example.txt');
    $file = File::create([
      'uri' => 'public://example.txt',
    ]);
    $file->save();

    $this->assertTrue(file_exists(Settings::get('tome_files_directory') . '/public/example.txt'));
  }

  /**
   * @covers \Drupal\tome_sync\FileSync::deleteFileExport
   */
  public function testDeleteFileExport() {
    touch('public://example.txt');
    $file = File::create([
      'uri' => 'public://example.txt',
    ]);
    $file->save();

    $this->assertTrue(file_exists(Settings::get('tome_files_directory') . '/public/example.txt'));
    $file->delete();
    $this->assertFalse(file_exists(Settings::get('tome_files_directory') . '/public/example.txt'));
  }

}

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

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