Skip to content

Commit 1875a97

Browse files
authored
Merge pull request #204 from clue-labs/phpstan
Update PHPStan and stricter types for PHPUnit
2 parents 76d749f + e44b5be commit 1875a97

6 files changed

Lines changed: 29 additions & 5 deletions

File tree

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"react/promise": "^3 || ^2.7"
1919
},
2020
"require-dev": {
21-
"phpstan/phpstan": "1.8.10 || 1.4.10",
21+
"phpstan/phpstan": "1.9.2 || 1.4.10",
2222
"phpunit/phpunit": "^9.5 || ^7.5",
2323
"psr/container": "^2 || ^1"
2424
},

phpstan.neon.dist

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,3 @@ parameters:
1313
# ignore unknown `Fiber` class (PHP 8.1+)
1414
- '/^Instantiated class Fiber not found\.$/'
1515
- '/^Call to method (start|isTerminated|getReturn)\(\) on an unknown class Fiber\.$/'
16-
# ignore incomplete type information for mocks in legacy PHPUnit 7.5
17-
- '/^Parameter #\d+ .+ of .+ expects .+, PHPUnit\\Framework\\MockObject\\MockObject given\.$/'

tests/AppTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public function testConstructWithContainerAssignsDefaultHandlersAndContainerForR
7474
$container->expects($this->once())->method('getAccessLogHandler')->willReturn($accessLogHandler);
7575
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
7676

77+
assert($container instanceof Container);
7778
$app = new App($container);
7879

7980
$ref = new ReflectionProperty($app, 'handler');
@@ -109,6 +110,7 @@ public function testConstructWithContainerAndMiddlewareClassNameAssignsCallableF
109110
$container = $this->createMock(Container::class);
110111
$container->expects($this->once())->method('callable')->with('stdClass')->willReturn($middleware);
111112

113+
assert($container instanceof Container);
112114
$app = new App($container, \stdClass::class);
113115

114116
$ref = new ReflectionProperty($app, 'handler');
@@ -224,6 +226,7 @@ public function testConstructWithContainerAndErrorHandlerClassAssignsErrorHandle
224226
$container = $this->createMock(Container::class);
225227
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
226228

229+
assert($container instanceof Container);
227230
$app = new App($container, ErrorHandler::class);
228231

229232
$ref = new ReflectionProperty($app, 'handler');
@@ -257,6 +260,8 @@ public function testConstructWithMultipleContainersAndErrorHandlerClassAssignsEr
257260
$container = $this->createMock(Container::class);
258261
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
259262

263+
assert($unused instanceof Container);
264+
assert($container instanceof Container);
260265
$app = new App($unused, $container, ErrorHandler::class, $unused);
261266

262267
$ref = new ReflectionProperty($app, 'handler');
@@ -291,6 +296,8 @@ public function testConstructWithMultipleContainersAndMiddlewareAssignsErrorHand
291296
$container = $this->createMock(Container::class);
292297
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
293298

299+
assert($unused instanceof Container);
300+
assert($container instanceof Container);
294301
$app = new App($unused, $container, $middleware, $unused);
295302

296303
$ref = new ReflectionProperty($app, 'handler');
@@ -361,6 +368,9 @@ public function testConstructWithMultipleContainersAndMiddlewareAndErrorHandlerC
361368
$container2 = $this->createMock(Container::class);
362369
$container2->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler2);
363370

371+
assert($unused instanceof Container);
372+
assert($container1 instanceof Container);
373+
assert($container2 instanceof Container);
364374
$app = new App($unused, $container1, $middleware, $container2, ErrorHandler::class, $unused);
365375

366376
$ref = new ReflectionProperty($app, 'handler');
@@ -448,6 +458,7 @@ public function testConstructWithContainerAndAccessLogHandlerClassAndErrorHandle
448458
$container->expects($this->once())->method('getAccessLogHandler')->willReturn($accessLogHandler);
449459
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
450460

461+
assert($container instanceof Container);
451462
$app = new App($container, AccessLogHandler::class, ErrorHandler::class);
452463

453464
$ref = new ReflectionProperty($app, 'handler');
@@ -515,6 +526,8 @@ public function testConstructWithMultipleContainersAndAccessLogHandlerClassAndEr
515526
$container->expects($this->once())->method('getAccessLogHandler')->willReturn($accessLogHandler);
516527
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
517528

529+
assert($unused instanceof Container);
530+
assert($container instanceof Container);
518531
$app = new App($unused, $container, AccessLogHandler::class, ErrorHandler::class, $unused);
519532

520533
$ref = new ReflectionProperty($app, 'handler');
@@ -554,6 +567,8 @@ public function testConstructWithMultipleContainersAndMiddlewareAssignsDefaultHa
554567
$container->expects($this->once())->method('getAccessLogHandler')->willReturn($accessLogHandler);
555568
$container->expects($this->once())->method('getErrorHandler')->willReturn($errorHandler);
556569

570+
assert($unused instanceof Container);
571+
assert($container instanceof Container);
557572
$app = new App($unused, $container, $middleware, $unused);
558573

559574
$ref = new ReflectionProperty($app, 'handler');

tests/ContainerTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1982,6 +1982,7 @@ public function __invoke(ServerRequestInterface $request): Response
19821982
$psr->expects($this->never())->method('has');
19831983
$psr->expects($this->once())->method('get')->with(get_class($controller))->willReturn($controller);
19841984

1985+
assert($psr instanceof ContainerInterface);
19851986
$container = new Container($psr);
19861987

19871988
$callable = $container->callable(get_class($controller));
@@ -2002,6 +2003,7 @@ public function testCallableReturnsCallableThatThrowsWhenFactoryReturnsInvalidCl
20022003
$psr->expects($this->never())->method('has');
20032004
$psr->expects($this->once())->method('get')->with('FooBar')->willThrowException($exception);
20042005

2006+
assert($psr instanceof ContainerInterface);
20052007
$container = new Container($psr);
20062008

20072009
$callable = $container->callable('FooBar'); // @phpstan-ignore-line
@@ -2054,6 +2056,7 @@ public function testGetEnvReturnsStringFromPsrContainer(): void
20542056
$psr->expects($this->once())->method('has')->with('X_FOO')->willReturn(true);
20552057
$psr->expects($this->once())->method('get')->with('X_FOO')->willReturn('bar');
20562058

2059+
assert($psr instanceof ContainerInterface);
20572060
$container = new Container($psr);
20582061

20592062
$this->assertEquals('bar', $container->getEnv('X_FOO'));
@@ -2065,6 +2068,7 @@ public function testGetEnvReturnsNullIfPsrContainerHasNoEntry(): void
20652068
$psr->expects($this->once())->method('has')->with('X_FOO')->willReturn(false);
20662069
$psr->expects($this->never())->method('get');
20672070

2071+
assert($psr instanceof ContainerInterface);
20682072
$container = new Container($psr);
20692073

20702074
$this->assertNull($container->getEnv('X_FOO'));
@@ -2076,6 +2080,7 @@ public function testGetEnvReturnsStringFromGlobalServerIfPsrContainerHasNoEntry(
20762080
$psr->expects($this->once())->method('has')->with('X_FOO')->willReturn(false);
20772081
$psr->expects($this->never())->method('get');
20782082

2083+
assert($psr instanceof ContainerInterface);
20792084
$container = new Container($psr);
20802085

20812086
$_SERVER['X_FOO'] = 'bar';
@@ -2102,6 +2107,7 @@ public function testGetEnvThrowsIfMapPsrContainerReturnsInvalidType(): void
21022107
$psr->expects($this->once())->method('has')->with('X_FOO')->willReturn(true);
21032108
$psr->expects($this->once())->method('get')->with('X_FOO')->willReturn(42);
21042109

2110+
assert($psr instanceof ContainerInterface);
21052111
$container = new Container($psr);
21062112

21072113
$this->expectException(\TypeError::class);
@@ -2139,6 +2145,7 @@ public function testGetAccessLogHandlerReturnsAccessLogHandlerInstanceFromPsrCon
21392145
$psr->expects($this->once())->method('has')->with(AccessLogHandler::class)->willReturn(true);
21402146
$psr->expects($this->once())->method('get')->with(AccessLogHandler::class)->willReturn($accessLogHandler);
21412147

2148+
assert($psr instanceof ContainerInterface);
21422149
$container = new Container($psr);
21432150

21442151
$ret = $container->getAccessLogHandler();
@@ -2152,6 +2159,7 @@ public function testGetAccessLogHandlerReturnsDefaultAccessLogHandlerInstanceIfP
21522159
$psr->expects($this->once())->method('has')->with(AccessLogHandler::class)->willReturn(false);
21532160
$psr->expects($this->never())->method('get');
21542161

2162+
assert($psr instanceof ContainerInterface);
21552163
$container = new Container($psr);
21562164

21572165
$accessLogHandler = $container->getAccessLogHandler();
@@ -2189,6 +2197,7 @@ public function testGetErrorHandlerReturnsErrorHandlerInstanceFromPsrContainer()
21892197
$psr->expects($this->once())->method('has')->with(ErrorHandler::class)->willReturn(true);
21902198
$psr->expects($this->once())->method('get')->with(ErrorHandler::class)->willReturn($errorHandler);
21912199

2200+
assert($psr instanceof ContainerInterface);
21922201
$container = new Container($psr);
21932202

21942203
$ret = $container->getErrorHandler();
@@ -2202,6 +2211,7 @@ public function testGetErrorHandlerReturnsDefaultErrorHandlerInstanceIfPsrContai
22022211
$psr->expects($this->once())->method('has')->with(ErrorHandler::class)->willReturn(false);
22032212
$psr->expects($this->never())->method('get');
22042213

2214+
assert($psr instanceof ContainerInterface);
22052215
$container = new Container($psr);
22062216

22072217
$errorHandler = $container->getErrorHandler();

tests/Io/RouteHandlerTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public function testMapRouteWithClassNameAddsRouteOnRouterWithControllerCallable
5454
$container = $this->createMock(Container::class);
5555
$container->expects($this->once())->method('callable')->with('stdClass')->willReturn($controller);
5656

57+
assert($container instanceof Container);
5758
$handler = new RouteHandler($container);
5859

5960
$router = $this->createMock(RouteCollector::class);
@@ -98,6 +99,7 @@ public function testMapRouteWithContainerAndControllerClassNameAddsRouteOnRouter
9899
$ref->setAccessible(true);
99100
$ref->setValue($handler, $router);
100101

102+
assert($container instanceof Container);
101103
$handler->map(['GET'], '/', $container, \stdClass::class);
102104
}
103105

tests/install-as-dep/composer.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
{
22
"require": {
3-
"clue/framework-x": "*@dev",
4-
"react/async": "^4@dev || ^3@dev"
3+
"clue/framework-x": "*@dev"
54
},
65
"repositories": [
76
{

0 commit comments

Comments
 (0)