Skip to content

Commit 419fd6f

Browse files
committed
Update phpunit.
1 parent e757b10 commit 419fd6f

14 files changed

+135
-51
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
.DS_Store
22
.idea
3-
.phpunit.result.cache
3+
.phpunit.cache
44
composer.lock
55
coverage
66
docs/_site

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@
3838
"nikic/php-parser": "^5.3"
3939
},
4040
"require-dev": {
41-
"phpstan/phpstan": "^1.12",
42-
"phpunit/phpunit": "^9.6",
43-
"phpspec/prophecy-phpunit": "^2.0",
44-
"squizlabs/php_codesniffer": "^3.10"
41+
"phpstan/phpstan": "^2.1",
42+
"phpunit/phpunit": "^11.5",
43+
"phpspec/prophecy-phpunit": "^2.3",
44+
"squizlabs/php_codesniffer": "^3.11"
4545
},
4646
"scripts": {
4747
"test": [

phpunit.xml.dist

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,31 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" backupGlobals="true" beStrictAboutOutputDuringTests="true" colors="true" bootstrap="tests/bootstrap.php">
3-
<coverage processUncoveredFiles="true">
4-
<include>
5-
<directory suffix=".php">src/</directory>
6-
</include>
7-
<report>
8-
<html outputDirectory="./coverage" lowUpperBound="20" highLowerBound="50"/>
9-
</report>
10-
</coverage>
11-
<testsuites>
12-
<testsuite name="PHP Autoload Override Test Suite">
13-
<directory>./tests/</directory>
14-
</testsuite>
15-
</testsuites>
16-
<logging/>
2+
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
4+
bootstrap="tests/bootstrap.php"
5+
cacheDirectory=".phpunit.cache"
6+
executionOrder="depends,defects"
7+
shortenArraysForExportThreshold="10"
8+
requireCoverageMetadata="true"
9+
beStrictAboutCoverageMetadata="true"
10+
beStrictAboutOutputDuringTests="true"
11+
displayDetailsOnPhpunitDeprecations="true"
12+
failOnPhpunitDeprecation="true"
13+
failOnWarning="true">
14+
<testsuites>
15+
<testsuite name="default">
16+
<directory>tests</directory>
17+
</testsuite>
18+
</testsuites>
19+
20+
<source ignoreIndirectDeprecations="true" restrictNotices="true" restrictWarnings="true">
21+
<include>
22+
<directory>src</directory>
23+
</include>
24+
</source>
25+
26+
<coverage>
27+
<report>
28+
<html outputDirectory="./coverage" lowUpperBound="20" highLowerBound="50"/>
29+
</report>
30+
</coverage>
1731
</phpunit>

tests/AbstractIntegrationTest.php renamed to tests/AbstractIntegrationTestCase.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

1313
use AdrianSuter\Autoload\Override\Override;
14+
use Composer\Autoload\ClassLoader;
1415
use PHPUnit\Framework\TestCase;
1516

16-
abstract class AbstractIntegrationTest extends TestCase
17+
abstract class AbstractIntegrationTestCase extends TestCase
1718
{
18-
private $overrideApplied = false;
19+
private bool $overrideApplied = false;
1920

20-
private static $classLoader;
21+
private static ClassLoader $classLoader;
2122

2223
public static function setUpBeforeClass(): void
2324
{

tests/AutoloadCollectionTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

1313
use AdrianSuter\Autoload\Override\AutoloadCollection;
14+
use PHPUnit\Framework\Attributes\CoversClass;
1415
use PHPUnit\Framework\TestCase;
1516

17+
#[CoversClass(AutoloadCollection::class)]
1618
class AutoloadCollectionTest extends TestCase
1719
{
18-
public function testAddDirectory()
20+
public function testAddDirectory(): void
1921
{
2022
$autoloadCollection = new AutoloadCollection();
2123
$autoloadCollection->addDirectory(__DIR__ . '/not-existent');

tests/ClosureHandlerTest.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,14 @@
1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

1313
use AdrianSuter\Autoload\Override\ClosureHandler;
14+
use PHPUnit\Framework\Attributes\CoversClass;
1415
use PHPUnit\Framework\TestCase;
1516
use RuntimeException;
1617

18+
#[CoversClass(ClosureHandler::class)]
1719
final class ClosureHandlerTest extends TestCase
1820
{
19-
public function testDefault()
21+
public function testDefault(): void
2022
{
2123
$closureHandler = ClosureHandler::getInstance();
2224
$closureHandler->addClosure(
@@ -30,7 +32,7 @@ function (): int {
3032
$this->assertEquals(42, $closureHandler->test());
3133
}
3234

33-
public function testUndefinedClosure()
35+
public function testUndefinedClosure(): void
3436
{
3537
$this->expectException(RuntimeException::class);
3638
$this->expectExceptionMessage('Closure Override "thisIsNotDefined" could not be found.');

tests/CodeConverterTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,14 @@
1212

1313
use AdrianSuter\Autoload\Override\CodeConverter;
1414
use PhpParser\Parser;
15+
use PHPUnit\Framework\Attributes\CoversClass;
1516
use PHPUnit\Framework\TestCase;
1617
use Prophecy\Argument;
1718
use Prophecy\PhpUnit\ProphecyTrait;
1819
use Prophecy\Prophecy\MethodProphecy;
1920
use RuntimeException;
2021

22+
#[CoversClass(CodeConverter::class)]
2123
class CodeConverterTest extends TestCase
2224
{
2325
use ProphecyTrait;

tests/FileStreamWrapperTest.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

1313
use AdrianSuter\Autoload\Override\FileStreamWrapper;
14+
use AdrianSuter\Autoload\Override\Override;
1415
use InvalidArgumentException;
16+
use PHPUnit\Framework\Attributes\CoversClass;
17+
use PHPUnit\Framework\Attributes\UsesClass;
1518
use PHPUnit\Framework\IncompleteTestError;
1619
use PHPUnit\Framework\TestCase;
1720
use ReflectionProperty;
@@ -57,12 +60,14 @@
5760
use const STREAM_META_OWNER;
5861
use const STREAM_OPTION_READ_TIMEOUT;
5962

63+
#[CoversClass(FileStreamWrapper::class)]
64+
#[UsesClass(Override::class)]
6065
final class FileStreamWrapperTest extends TestCase
6166
{
6267
/**
6368
* @var string|null
6469
*/
65-
private $tempFilePath;
70+
private ?string $tempFilePath = null;
6671

6772
protected function tearDown(): void
6873
{

tests/IntegrationClassMapTest.php

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,44 +10,58 @@
1010

1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

13-
class IntegrationClassMapTest extends AbstractIntegrationTest
13+
use AdrianSuter\Autoload\Override\AutoloadCollection;
14+
use AdrianSuter\Autoload\Override\ClosureHandler;
15+
use AdrianSuter\Autoload\Override\CodeConverter;
16+
use AdrianSuter\Autoload\Override\FileStreamWrapper;
17+
use AdrianSuter\Autoload\Override\Override;
18+
use PHPUnit\Framework\Attributes\CoversClass;
19+
use PHPUnit\Framework\Attributes\UsesClass;
20+
21+
#[CoversClass(Override::class)]
22+
#[UsesClass(AutoloadCollection::class)]
23+
#[UsesClass(ClosureHandler::class)]
24+
#[UsesClass(CodeConverter::class)]
25+
#[UsesClass(FileStreamWrapper::class)]
26+
class IntegrationClassMapTest extends AbstractIntegrationTestCase
1427
{
1528
protected function getOverrideDeclarations(): array
1629
{
1730
return [
1831
\My\Integration\TestClassMapOverride\Calculator::class => [
1932
'cos' => function (float $arg): float {
20-
2133
return \sin($arg);
2234
},
2335
],
2436
'My\\Integration\\TestClassMapOverride\\' => [
2537
'cos' => function (float $arg): float {
26-
2738
return $arg * 2;
2839
},
2940
]
3041
];
3142
}
3243

33-
public function testCalculator()
44+
public function testCalculator(): void
3445
{
3546
$calculator = new \My\Integration\TestClassMapOverride\Calculator();
36-
// Calls \cos() > Overridden by FQCN-declaration.
47+
48+
// Calls \cos() > Overridden by FQCN-declaration.
3749
$this->assertEquals(\sin(\pi() / 2), $calculator->cos(\pi() / 2));
3850
}
3951

40-
public function testGeometry()
52+
public function testGeometry(): void
4153
{
4254
$geometry = new \My\Integration\TestClassMapOverride\SubNamespace\Geometry();
43-
// Calls \cos() > Overridden by FQNS-declaration.
55+
56+
// Calls \cos() > Overridden by FQNS-declaration.
4457
$this->assertEquals(1, $geometry->cos(0.5));
4558
}
4659

47-
public function testOtherCalculator()
60+
public function testOtherCalculator(): void
4861
{
4962
$otherCalculator = new \My\Integration\TestClassMapOverride\OtherCalculator();
50-
// Calls \cos() > Overridden by FQNS-declaration.
63+
64+
// Calls \cos() > Overridden by FQNS-declaration.
5165
$this->assertEquals(2, $otherCalculator->cos(1));
5266
}
5367
}

tests/IntegrationClosureTest.php

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,47 +10,54 @@
1010

1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

13-
class IntegrationClosureTest extends AbstractIntegrationTest
13+
use AdrianSuter\Autoload\Override\AutoloadCollection;
14+
use AdrianSuter\Autoload\Override\ClosureHandler;
15+
use AdrianSuter\Autoload\Override\CodeConverter;
16+
use AdrianSuter\Autoload\Override\FileStreamWrapper;
17+
use AdrianSuter\Autoload\Override\Override;
18+
use PHPUnit\Framework\Attributes\CoversClass;
19+
use PHPUnit\Framework\Attributes\UsesClass;
20+
21+
#[CoversClass(Override::class)]
22+
#[UsesClass(AutoloadCollection::class)]
23+
#[UsesClass(ClosureHandler::class)]
24+
#[UsesClass(CodeConverter::class)]
25+
#[UsesClass(FileStreamWrapper::class)]
26+
class IntegrationClosureTest extends AbstractIntegrationTestCase
1427
{
1528
protected function getOverrideDeclarations(): array
1629
{
1730
return [
1831
// Test that the class loader can find the file to that class.
1932
\My\Integration\TestClosureOverride\Clock::class => [
2033
'time' => function () {
21-
2234
return 100;
2335
},
2436
'rand' => function (int $min, int $max): int {
25-
2637
return $min + $max;
2738
}
2839
],
2940
\My\Integration\TestClosureOverride\SubSpace\Digital::class => [
3041
'rand' => function (int $min, int $max): int {
31-
3242
return 2 * ($min + $max);
3343
}
3444
],
3545
// Test that Override finds PSR-4 directory belonging to the namespace "My\Integration" and from there the
3646
// directory to the "TestClosureOverride" sub namespace.
3747
'My\\Integration\\TestClosureOverride\\' => [
3848
'rand' => function (int $min, int $max): int {
39-
4049
return 3 * ($min + $max);
4150
}
4251
],
4352
// Test that Override finds PSR-4 directory belonging to the namespace "My\Integration" and from there the
4453
// directory to the "TestClosureOverride\SubSpace" sub namespace.
4554
'My\\Integration\\TestClosureOverride\\SubSpace\\' => [
4655
'time' => function () {
47-
4856
return 101;
4957
}
5058
],
5159
\My\Integration\TestClosureOverride\OtherSpace\Other::class => [
5260
'time' => function (): int {
53-
5461
return 102;
5562
}
5663
]

tests/IntegrationCustomNamespaceTest.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,18 @@
1010

1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

13-
class IntegrationCustomNamespaceTest extends AbstractIntegrationTest
13+
use AdrianSuter\Autoload\Override\AutoloadCollection;
14+
use AdrianSuter\Autoload\Override\CodeConverter;
15+
use AdrianSuter\Autoload\Override\FileStreamWrapper;
16+
use AdrianSuter\Autoload\Override\Override;
17+
use PHPUnit\Framework\Attributes\CoversClass;
18+
use PHPUnit\Framework\Attributes\UsesClass;
19+
20+
#[CoversClass(Override::class)]
21+
#[UsesClass(AutoloadCollection::class)]
22+
#[UsesClass(CodeConverter::class)]
23+
#[UsesClass(FileStreamWrapper::class)]
24+
class IntegrationCustomNamespaceTest extends AbstractIntegrationTestCase
1425
{
1526
public static function setUpBeforeClass(): void
1627
{

tests/IntegrationNamespaceTest.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,18 @@
1010

1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

13-
class IntegrationNamespaceTest extends AbstractIntegrationTest
13+
use AdrianSuter\Autoload\Override\AutoloadCollection;
14+
use AdrianSuter\Autoload\Override\CodeConverter;
15+
use AdrianSuter\Autoload\Override\FileStreamWrapper;
16+
use AdrianSuter\Autoload\Override\Override;
17+
use PHPUnit\Framework\Attributes\CoversClass;
18+
use PHPUnit\Framework\Attributes\UsesClass;
19+
20+
#[CoversClass(Override::class)]
21+
#[UsesClass(AutoloadCollection::class)]
22+
#[UsesClass(CodeConverter::class)]
23+
#[UsesClass(FileStreamWrapper::class)]
24+
class IntegrationNamespaceTest extends AbstractIntegrationTestCase
1425
{
1526
public static function setUpBeforeClass(): void
1627
{

tests/IntegrationPsr4MultiDirTest.php

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,31 @@
1010

1111
namespace AdrianSuter\Autoload\Override\Tests;
1212

13-
class IntegrationPsr4MultiDirTest extends AbstractIntegrationTest
13+
use AdrianSuter\Autoload\Override\AutoloadCollection;
14+
use AdrianSuter\Autoload\Override\ClosureHandler;
15+
use AdrianSuter\Autoload\Override\CodeConverter;
16+
use AdrianSuter\Autoload\Override\FileStreamWrapper;
17+
use AdrianSuter\Autoload\Override\Override;
18+
use PHPUnit\Framework\Attributes\CoversClass;
19+
use PHPUnit\Framework\Attributes\UsesClass;
20+
21+
#[CoversClass(Override::class)]
22+
#[UsesClass(AutoloadCollection::class)]
23+
#[UsesClass(ClosureHandler::class)]
24+
#[UsesClass(CodeConverter::class)]
25+
#[UsesClass(FileStreamWrapper::class)]
26+
class IntegrationPsr4MultiDirTest extends AbstractIntegrationTestCase
1427
{
1528
protected function getOverrideDeclarations(): array
1629
{
1730
return [
1831
\AdrianSuter\Autoload\Override\Science::class => [
1932
'str_repeat' => function ($str, $multiplier) {
20-
2133
return \str_repeat($str, 2 * $multiplier);
2234
}
2335
],
2436
'AdrianSuter\\Autoload\\Override\\SubSpace\\' => [
2537
'str_repeat' => function ($input, $multiplier) {
26-
2738
return ':';
2839
}
2940
],

0 commit comments

Comments
 (0)