芝麻web文件管理V1.00
编辑当前文件:/home/qrafawbu/kwesioben.com/paymoney/vendor/phpunit/phpunit/src/Runner/TestResult/PassedTests.php
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\TestRunner\TestResult; use function array_merge; use function assert; use function in_array; use PHPUnit\Event\Code\TestMethod; use PHPUnit\Event\TestData\NoDataSetFromDataProviderException; use PHPUnit\Framework\TestSize\Known; use PHPUnit\Framework\TestSize\TestSize; use PHPUnit\Metadata\Api\Groups; /** * @internal This class is not covered by the backward compatibility promise for PHPUnit */ final class PassedTests { private static ?self $instance = null; /** * @psalm-var list
*/ private array $passedTestClasses = []; /** * @psalm-var array
*/ private array $passedTestMethods = []; public static function instance(): self { if (self::$instance !== null) { return self::$instance; } self::$instance = new self; return self::$instance; } /** * @psalm-param class-string $className */ public function testClassPassed(string $className): void { $this->passedTestClasses[] = $className; } /** * @throws NoDataSetFromDataProviderException */ public function testMethodPassed(TestMethod $test, mixed $returnValue): void { $size = (new Groups)->size( $test->className(), $test->methodName() ); $this->passedTestMethods[$test->className() . '::' . $test->methodName()] = [ 'returnValue' => $returnValue, 'size' => $size, ]; } public function import(self $other): void { $this->passedTestClasses = array_merge( $this->passedTestClasses, $other->passedTestClasses ); $this->passedTestMethods = array_merge( $this->passedTestMethods, $other->passedTestMethods ); } /** * @psalm-param class-string $className */ public function hasTestClassPassed(string $className): bool { return in_array($className, $this->passedTestClasses, true); } public function hasTestMethodPassed(string $method): bool { return isset($this->passedTestMethods[$method]); } public function isGreaterThan(string $method, TestSize $other): bool { if ($other->isUnknown()) { return false; } assert($other instanceof Known); $size = $this->passedTestMethods[$method]['size']; if ($size->isUnknown()) { return false; } assert($size instanceof Known); return $size->isGreaterThan($other); } public function returnValue(string $method): mixed { if (isset($this->passedTestMethods[$method])) { return $this->passedTestMethods[$method]['returnValue']; } return null; } }