Test project for media files management.
<?php declare(strict_types=1);
/*
* This file is part of PHPUnit.
*
* (c) Sebastian Bergmann <sebastian@phpunit.de>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace PHPUnit\TextUI\XmlConfiguration;
/**
* @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
*
* @internal This class is not covered by the backward compatibility promise for PHPUnit
*
* @immutable
*/
final readonly class PHPUnit
{
private ?string $cacheDirectory;
private bool $cacheResult;
private int|string $columns;
private string $colors;
private bool $stderr;
private bool $displayDetailsOnIncompleteTests;
private bool $displayDetailsOnSkippedTests;
private bool $displayDetailsOnTestsThatTriggerDeprecations;
private bool $displayDetailsOnTestsThatTriggerErrors;
private bool $displayDetailsOnTestsThatTriggerNotices;
private bool $displayDetailsOnTestsThatTriggerWarnings;
private bool $reverseDefectList;
private bool $requireCoverageMetadata;
private ?string $bootstrap;
private bool $processIsolation;
private bool $failOnDeprecation;
private bool $failOnEmptyTestSuite;
private bool $failOnIncomplete;
private bool $failOnNotice;
private bool $failOnRisky;
private bool $failOnSkipped;
private bool $failOnWarning;
private bool $stopOnDefect;
private bool $stopOnDeprecation;
private bool $stopOnError;
private bool $stopOnFailure;
private bool $stopOnIncomplete;
private bool $stopOnNotice;
private bool $stopOnRisky;
private bool $stopOnSkipped;
private bool $stopOnWarning;
/**
* @var ?non-empty-string
*/
private ?string $extensionsDirectory;
private bool $beStrictAboutChangesToGlobalState;
private bool $beStrictAboutOutputDuringTests;
private bool $beStrictAboutTestsThatDoNotTestAnything;
private bool $beStrictAboutCoverageMetadata;
private bool $enforceTimeLimit;
private int $defaultTimeLimit;
private int $timeoutForSmallTests;
private int $timeoutForMediumTests;
private int $timeoutForLargeTests;
private ?string $defaultTestSuite;
private int $executionOrder;
private bool $resolveDependencies;
private bool $defectsFirst;
private bool $backupGlobals;
private bool $backupStaticProperties;
private bool $testdoxPrinter;
private bool $testdoxPrinterSummary;
private bool $controlGarbageCollector;
private int $numberOfTestsBeforeGarbageCollection;
/**
* @var non-negative-int
*/
private int $shortenArraysForExportThreshold;
/**
* @param ?non-empty-string $extensionsDirectory
* @param non-negative-int $shortenArraysForExportThreshold
*/
public function __construct(?string $cacheDirectory, bool $cacheResult, int|string $columns, string $colors, bool $stderr, bool $displayDetailsOnIncompleteTests, bool $displayDetailsOnSkippedTests, bool $displayDetailsOnTestsThatTriggerDeprecations, bool $displayDetailsOnTestsThatTriggerErrors, bool $displayDetailsOnTestsThatTriggerNotices, bool $displayDetailsOnTestsThatTriggerWarnings, bool $reverseDefectList, bool $requireCoverageMetadata, ?string $bootstrap, bool $processIsolation, bool $failOnDeprecation, bool $failOnEmptyTestSuite, bool $failOnIncomplete, bool $failOnNotice, bool $failOnRisky, bool $failOnSkipped, bool $failOnWarning, bool $stopOnDefect, bool $stopOnDeprecation, bool $stopOnError, bool $stopOnFailure, bool $stopOnIncomplete, bool $stopOnNotice, bool $stopOnRisky, bool $stopOnSkipped, bool $stopOnWarning, ?string $extensionsDirectory, bool $beStrictAboutChangesToGlobalState, bool $beStrictAboutOutputDuringTests, bool $beStrictAboutTestsThatDoNotTestAnything, bool $beStrictAboutCoverageMetadata, bool $enforceTimeLimit, int $defaultTimeLimit, int $timeoutForSmallTests, int $timeoutForMediumTests, int $timeoutForLargeTests, ?string $defaultTestSuite, int $executionOrder, bool $resolveDependencies, bool $defectsFirst, bool $backupGlobals, bool $backupStaticProperties, bool $testdoxPrinter, bool $testdoxPrinterSummary, bool $controlGarbageCollector, int $numberOfTestsBeforeGarbageCollection, int $shortenArraysForExportThreshold)
{
$this->cacheDirectory = $cacheDirectory;
$this->cacheResult = $cacheResult;
$this->columns = $columns;
$this->colors = $colors;
$this->stderr = $stderr;
$this->displayDetailsOnIncompleteTests = $displayDetailsOnIncompleteTests;
$this->displayDetailsOnSkippedTests = $displayDetailsOnSkippedTests;
$this->displayDetailsOnTestsThatTriggerDeprecations = $displayDetailsOnTestsThatTriggerDeprecations;
$this->displayDetailsOnTestsThatTriggerErrors = $displayDetailsOnTestsThatTriggerErrors;
$this->displayDetailsOnTestsThatTriggerNotices = $displayDetailsOnTestsThatTriggerNotices;
$this->displayDetailsOnTestsThatTriggerWarnings = $displayDetailsOnTestsThatTriggerWarnings;
$this->reverseDefectList = $reverseDefectList;
$this->requireCoverageMetadata = $requireCoverageMetadata;
$this->bootstrap = $bootstrap;
$this->processIsolation = $processIsolation;
$this->failOnDeprecation = $failOnDeprecation;
$this->failOnEmptyTestSuite = $failOnEmptyTestSuite;
$this->failOnIncomplete = $failOnIncomplete;
$this->failOnNotice = $failOnNotice;
$this->failOnRisky = $failOnRisky;
$this->failOnSkipped = $failOnSkipped;
$this->failOnWarning = $failOnWarning;
$this->stopOnDefect = $stopOnDefect;
$this->stopOnDeprecation = $stopOnDeprecation;
$this->stopOnError = $stopOnError;
$this->stopOnFailure = $stopOnFailure;
$this->stopOnIncomplete = $stopOnIncomplete;
$this->stopOnNotice = $stopOnNotice;
$this->stopOnRisky = $stopOnRisky;
$this->stopOnSkipped = $stopOnSkipped;
$this->stopOnWarning = $stopOnWarning;
$this->extensionsDirectory = $extensionsDirectory;
$this->beStrictAboutChangesToGlobalState = $beStrictAboutChangesToGlobalState;
$this->beStrictAboutOutputDuringTests = $beStrictAboutOutputDuringTests;
$this->beStrictAboutTestsThatDoNotTestAnything = $beStrictAboutTestsThatDoNotTestAnything;
$this->beStrictAboutCoverageMetadata = $beStrictAboutCoverageMetadata;
$this->enforceTimeLimit = $enforceTimeLimit;
$this->defaultTimeLimit = $defaultTimeLimit;
$this->timeoutForSmallTests = $timeoutForSmallTests;
$this->timeoutForMediumTests = $timeoutForMediumTests;
$this->timeoutForLargeTests = $timeoutForLargeTests;
$this->defaultTestSuite = $defaultTestSuite;
$this->executionOrder = $executionOrder;
$this->resolveDependencies = $resolveDependencies;
$this->defectsFirst = $defectsFirst;
$this->backupGlobals = $backupGlobals;
$this->backupStaticProperties = $backupStaticProperties;
$this->testdoxPrinter = $testdoxPrinter;
$this->testdoxPrinterSummary = $testdoxPrinterSummary;
$this->controlGarbageCollector = $controlGarbageCollector;
$this->numberOfTestsBeforeGarbageCollection = $numberOfTestsBeforeGarbageCollection;
$this->shortenArraysForExportThreshold = $shortenArraysForExportThreshold;
}
/**
* @phpstan-assert-if-true !null $this->cacheDirectory
*/
public function hasCacheDirectory(): bool
{
return $this->cacheDirectory !== null;
}
/**
* @throws Exception
*/
public function cacheDirectory(): string
{
if (!$this->hasCacheDirectory()) {
throw new Exception('Cache directory is not configured');
}
return $this->cacheDirectory;
}
public function cacheResult(): bool
{
return $this->cacheResult;
}
public function columns(): int|string
{
return $this->columns;
}
public function colors(): string
{
return $this->colors;
}
public function stderr(): bool
{
return $this->stderr;
}
public function displayDetailsOnIncompleteTests(): bool
{
return $this->displayDetailsOnIncompleteTests;
}
public function displayDetailsOnSkippedTests(): bool
{
return $this->displayDetailsOnSkippedTests;
}
public function displayDetailsOnTestsThatTriggerDeprecations(): bool
{
return $this->displayDetailsOnTestsThatTriggerDeprecations;
}
public function displayDetailsOnTestsThatTriggerErrors(): bool
{
return $this->displayDetailsOnTestsThatTriggerErrors;
}
public function displayDetailsOnTestsThatTriggerNotices(): bool
{
return $this->displayDetailsOnTestsThatTriggerNotices;
}
public function displayDetailsOnTestsThatTriggerWarnings(): bool
{
return $this->displayDetailsOnTestsThatTriggerWarnings;
}
public function reverseDefectList(): bool
{
return $this->reverseDefectList;
}
public function requireCoverageMetadata(): bool
{
return $this->requireCoverageMetadata;
}
/**
* @phpstan-assert-if-true !null $this->bootstrap
*/
public function hasBootstrap(): bool
{
return $this->bootstrap !== null;
}
/**
* @throws Exception
*/
public function bootstrap(): string
{
if (!$this->hasBootstrap()) {
throw new Exception('Bootstrap script is not configured');
}
return $this->bootstrap;
}
public function processIsolation(): bool
{
return $this->processIsolation;
}
public function failOnDeprecation(): bool
{
return $this->failOnDeprecation;
}
public function failOnEmptyTestSuite(): bool
{
return $this->failOnEmptyTestSuite;
}
public function failOnIncomplete(): bool
{
return $this->failOnIncomplete;
}
public function failOnNotice(): bool
{
return $this->failOnNotice;
}
public function failOnRisky(): bool
{
return $this->failOnRisky;
}
public function failOnSkipped(): bool
{
return $this->failOnSkipped;
}
public function failOnWarning(): bool
{
return $this->failOnWarning;
}
public function stopOnDefect(): bool
{
return $this->stopOnDefect;
}
public function stopOnDeprecation(): bool
{
return $this->stopOnDeprecation;
}
public function stopOnError(): bool
{
return $this->stopOnError;
}
public function stopOnFailure(): bool
{
return $this->stopOnFailure;
}
public function stopOnIncomplete(): bool
{
return $this->stopOnIncomplete;
}
public function stopOnNotice(): bool
{
return $this->stopOnNotice;
}
public function stopOnRisky(): bool
{
return $this->stopOnRisky;
}
public function stopOnSkipped(): bool
{
return $this->stopOnSkipped;
}
public function stopOnWarning(): bool
{
return $this->stopOnWarning;
}
/**
* @phpstan-assert-if-true !null $this->extensionsDirectory
*/
public function hasExtensionsDirectory(): bool
{
return $this->extensionsDirectory !== null;
}
/**
* @throws Exception
*
* @return non-empty-string
*/
public function extensionsDirectory(): string
{
if (!$this->hasExtensionsDirectory()) {
throw new Exception('Extensions directory is not configured');
}
return $this->extensionsDirectory;
}
public function beStrictAboutChangesToGlobalState(): bool
{
return $this->beStrictAboutChangesToGlobalState;
}
public function beStrictAboutOutputDuringTests(): bool
{
return $this->beStrictAboutOutputDuringTests;
}
public function beStrictAboutTestsThatDoNotTestAnything(): bool
{
return $this->beStrictAboutTestsThatDoNotTestAnything;
}
public function beStrictAboutCoverageMetadata(): bool
{
return $this->beStrictAboutCoverageMetadata;
}
public function enforceTimeLimit(): bool
{
return $this->enforceTimeLimit;
}
public function defaultTimeLimit(): int
{
return $this->defaultTimeLimit;
}
public function timeoutForSmallTests(): int
{
return $this->timeoutForSmallTests;
}
public function timeoutForMediumTests(): int
{
return $this->timeoutForMediumTests;
}
public function timeoutForLargeTests(): int
{
return $this->timeoutForLargeTests;
}
/**
* @phpstan-assert-if-true !null $this->defaultTestSuite
*/
public function hasDefaultTestSuite(): bool
{
return $this->defaultTestSuite !== null;
}
/**
* @throws Exception
*/
public function defaultTestSuite(): string
{
if (!$this->hasDefaultTestSuite()) {
throw new Exception('Default test suite is not configured');
}
return $this->defaultTestSuite;
}
public function executionOrder(): int
{
return $this->executionOrder;
}
public function resolveDependencies(): bool
{
return $this->resolveDependencies;
}
public function defectsFirst(): bool
{
return $this->defectsFirst;
}
public function backupGlobals(): bool
{
return $this->backupGlobals;
}
public function backupStaticProperties(): bool
{
return $this->backupStaticProperties;
}
public function testdoxPrinter(): bool
{
return $this->testdoxPrinter;
}
public function testdoxPrinterSummary(): bool
{
return $this->testdoxPrinterSummary;
}
public function controlGarbageCollector(): bool
{
return $this->controlGarbageCollector;
}
public function numberOfTestsBeforeGarbageCollection(): int
{
return $this->numberOfTestsBeforeGarbageCollection;
}
/**
* @return non-negative-int
*/
public function shortenArraysForExportThreshold(): int
{
return $this->shortenArraysForExportThreshold;
}
}