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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
<?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 sprintf;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\Attributes\ExcludeGlobalVariableFromBackup;
use PHPUnit\TestFixture\TestWithDifferentNames;
#[CoversClass(TestCase::class)]
#[ExcludeGlobalVariableFromBackup('i')]
#[ExcludeGlobalVariableFromBackup('singleton')]
class TestCaseTest extends TestCase
{
protected static int $testStatic = 456;
public static function provideDataSetAsStringWithDataProvider(): iterable
{
yield ['', 'dataSet', []];
yield ["#0 with data ('foo', 'bar')", 0, ['foo', 'bar']];
yield ["@dataSet with data ('foo', 'bar')", 'dataSet', ['foo', 'bar']];
}
public static function setUpBeforeClass(): void
{
$GLOBALS['a'] = 'a';
$_ENV['b'] = 'b';
$_POST['c'] = 'c';
$_GET['d'] = 'd';
$_COOKIE['e'] = 'e';
$_SERVER['f'] = 'f';
$_FILES['g'] = 'g';
$_REQUEST['h'] = 'h';
$GLOBALS['i'] = 'i';
}
public static function tearDownAfterClass(): void
{
unset(
$GLOBALS['a'],
$_ENV['b'],
$_POST['c'],
$_GET['d'],
$_COOKIE['e'],
$_SERVER['f'],
$_FILES['g'],
$_REQUEST['h'],
$GLOBALS['i'],
);
}
public function testCaseToString(): void
{
$this->assertEquals(
sprintf(
'%s::testCaseToString',
self::class,
),
$this->toString(),
);
}
public function testCaseDefaultExecutionOrderDependencies(): void
{
$this->assertInstanceOf(Reorderable::class, $this);
$this->assertEquals(
[new ExecutionOrderDependency(static::class, 'testCaseDefaultExecutionOrderDependencies')],
$this->provides(),
);
$this->assertEquals(
[],
$this->requires(),
);
}
public function testGetNameReturnsMethodName(): void
{
$methodName = 'testWithName';
$testCase = new TestWithDifferentNames($methodName);
$this->assertSame($methodName, $testCase->nameWithDataSet());
}
#[DataProvider('provideDataSetAsStringWithDataProvider')]
public function testDataSetAsStringWithData(string $expectedData, int|string $dataName, array $data): void
{
$testCase = new TestWithDifferentNames('testWithName');
$testCase->setData($dataName, $data);
$this->assertSame($expectedData, $testCase->dataSetAsStringWithData());
}
}
|