1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
<?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\Framework;
use function array_reduce;
use function file_get_contents;
use function preg_match_all;
use PHPUnit\Framework\Attributes\CoversNothing;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\TestDox;
#[CoversNothing]
#[TestDox('Global Assertion Functions')]
final class FunctionsTest extends TestCase
{
private static array $globalAssertionFunctions = [];
public static function provideStaticAssertionMethodNames(): array
{
preg_match_all(
'/public static function (assert[^ (]+)/',
file_get_contents(
__DIR__ . '/../../../../src/Framework/Assert.php',
),
$matches,
);
return array_reduce(
$matches[1],
static function (array $functionNames, string $functionName)
{
$functionNames[$functionName] = [$functionName];
return $functionNames;
},
[],
);
}
public static function setUpBeforeClass(): void
{
preg_match_all(
'/function (assert[^ (]+)/',
file_get_contents(
__DIR__ . '/../../../../src/Framework/Assert/Functions.php',
),
$matches,
);
self::$globalAssertionFunctions = $matches[1];
}
#[DataProvider('provideStaticAssertionMethodNames')]
#[TestDox('PHPUnit\Framework\Assert::$methodName() is available as global function $methodName()')]
public function testGlobalFunctionsFileContainsAllStaticAssertions(string $methodName): void
{
Assert::assertContains(
$methodName,
self::$globalAssertionFunctions,
"Mapping for Assert::{$methodName} is missing in Functions.php",
);
}
}
|