ArchiverTestBase.php

Same filename in other branches
  1. 10 core/tests/Drupal/KernelTests/Core/Archiver/ArchiverTestBase.php

Namespace

Drupal\KernelTests\Core\Archiver

File

core/tests/Drupal/KernelTests/Core/Archiver/ArchiverTestBase.php

View source
<?php

declare (strict_types=1);
namespace Drupal\KernelTests\Core\Archiver;

use Drupal\KernelTests\Core\File\FileTestBase;
use Drupal\Tests\TestFileCreationTrait;

/**
 * Provides archive specific assertions and helper properties for archive tests.
 */
abstract class ArchiverTestBase extends FileTestBase {
    use TestFileCreationTrait;
    
    /**
     * The archiver plugin identifier.
     *
     * @var string
     */
    protected $archiverPluginId;
    
    /**
     * The file system service.
     *
     * @var \Drupal\Core\File\FileSystemInterface
     */
    protected $fileSystem;
    
    /**
     * {@inheritdoc}
     */
    protected function setUp() : void {
        parent::setUp();
        $this->fileSystem = $this->container
            ->get('file_system');
    }
    
    /**
     * Asserts an archive contains a given file.
     *
     * @param string $path
     *   Absolute file path to an archived file.
     * @param string $file
     *   File to assert does exist within the archived file.
     * @param array $configuration
     *   Optional configuration to pass to the archiver plugin.
     */
    protected function assertArchiveContainsFile($path, $file, array $configuration = []) {
        $configuration['filepath'] = $path;
        
        /** @var \Drupal\Core\Archiver\ArchiverManager $manager */
        $manager = $this->container
            ->get('plugin.manager.archiver');
        $archive = $manager->createInstance($this->archiverPluginId, $configuration);
        $this->assertContains($file, $archive->listContents(), sprintf('The "%s" archive contains the "%s" file.', $path, $file));
    }
    
    /**
     * Asserts an archive does not contain a given file.
     *
     * @param string $path
     *   Absolute file path to an archived file.
     * @param string $file
     *   File to assert does not exist within the archived file.
     * @param array $configuration
     *   Optional configuration to pass to the archiver plugin.
     */
    protected function assertArchiveNotContainsFile($path, $file, array $configuration = []) {
        $configuration['filepath'] = $path;
        
        /** @var \Drupal\Core\Archiver\ArchiverManager $manager */
        $manager = $this->container
            ->get('plugin.manager.archiver');
        $archive = $manager->createInstance($this->archiverPluginId, $configuration);
        $this->assertNotContains($file, $archive->listContents(), sprintf('The "%s" archive does not contain the "%s" file.', $path, $file));
    }

}

Classes

Title Deprecated Summary
ArchiverTestBase Provides archive specific assertions and helper properties for archive tests.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.