Upgrade PHPUnit5CompatExtension

[MAILPOET-2588]
This commit is contained in:
Jan Jakeš
2019-12-19 13:40:04 +01:00
committed by amine-mp
parent 4a12051e81
commit ff7c63f0b3
7 changed files with 124 additions and 26 deletions

View File

@ -1,9 +0,0 @@
<?php
namespace MailPoet\PHPStan\Extensions\PHPUnit5CompatExtension\Type;
class CreateMockDynamicReturnTypeExtension extends \PHPStan\Type\PHPUnit\CreateMockDynamicReturnTypeExtension {
public function getClass(): string {
return 'PHPUnit_Framework_TestCase';
}
}

View File

@ -1,9 +0,0 @@
<?php
namespace MailPoet\PHPStan\Extensions\PHPUnit5CompatExtension\Type;
class GetMockBuilderDynamicReturnTypeExtension extends \PHPStan\Type\PHPUnit\GetMockBuilderDynamicReturnTypeExtension {
public function getClass(): string {
return 'PHPUnit_Framework_TestCase';
}
}

View File

@ -0,0 +1,11 @@
<?php
namespace MailPoet\PHPStan\Extensions\PHPUnit5CompatExtension\Type;
use PHPUnit_Framework_MockObject_MockBuilder;
class MockBuilderDynamicReturnTypeExtension extends \PHPStan\Type\PHPUnit\MockBuilderDynamicReturnTypeExtension {
public function getClass(): string {
return PHPUnit_Framework_MockObject_MockBuilder::class;
}
}

View File

@ -4,16 +4,13 @@ parameters:
- fail
- markTestIncomplete
- markTestSkipped
stubFiles:
- stubs/MockBuilder.php
- stubs/MockObject.php
- stubs/TestCase.php
services:
# resolves return type from $this->createMock(SomeMockedClass::class) and other methods in PHPUnit_Framework_TestCase
-
class: MailPoet\PHPStan\Extensions\PHPUnit5CompatExtension\Type\CreateMockDynamicReturnTypeExtension
tags:
- phpstan.broker.dynamicMethodReturnTypeExtension
# resolves return type from $this->getMockBuilder(SomeMockedClass::class) in PHPUnit_Framework_TestCase
-
class: MailPoet\PHPStan\Extensions\PHPUnit5CompatExtension\Type\GetMockBuilderDynamicReturnTypeExtension
class: MailPoet\PHPStan\Extensions\PHPUnit5CompatExtension\Type\MockBuilderDynamicReturnTypeExtension
tags:
- phpstan.broker.dynamicMethodReturnTypeExtension

View File

@ -0,0 +1,26 @@
<?php
/**
* @template TMockedClass
*/
class PHPUnit_Framework_MockObject_MockBuilder { // phpcs:ignore
/**
* @phpstan-param PHPUnit_Framework_TestCase $testCase
* @phpstan-param class-string<TMockedClass> $type
*/
public function __construct(PHPUnit_Framework_TestCase $testCase, $type) {
}
/**
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&TMockedClass
*/
public function getMock() {
}
/**
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&TMockedClass
*/
public function getMockForAbstractClass() {
}
}

View File

@ -0,0 +1,4 @@
<?php
interface PHPUnit_Framework_MockObject_MockObject { // phpcs:ignore
}

View File

@ -0,0 +1,78 @@
<?php
class PHPUnit_Framework_TestCase { // phpcs:ignore
/**
* @template T
* @phpstan-param class-string<T> $originalClassName
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
public function createStub($originalClassName) {
}
/**
* @template T
* @phpstan-param class-string<T> $originalClassName
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
public function createMock($originalClassName) {
}
/**
* @template T
* @phpstan-param class-string<T> $className
* @phpstan-return PHPUnit_Framework_MockObject_MockBuilder<T>
*/
public function getMockBuilder(string $className) {
}
/**
* @template T
* @phpstan-param class-string<T> $originalClassName
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
public function createConfiguredMock($originalClassName) {
}
/**
* @template T
* @phpstan-param class-string<T> $originalClassName
* @phpstan-param string[] $methods
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
public function createPartialMock($originalClassName, array $methods) {
}
/**
* @template T
* @phpstan-param class-string<T> $originalClassName
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
public function createTestProxy($originalClassName) {
}
/**
* @template T
* @phpstan-param class-string<T> $originalClassName
* @phpstan-param string $mockClassName
* @phpstan-param bool $callOriginalConstructor
* @phpstan-param bool $callOriginalClone
* @phpstan-param bool $callAutoload
* @phpstan-param string[] $mockedMethods
* @phpstan-param bool $cloneArguments
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
protected function getMockForAbstractClass($originalClassName, array $arguments = [], $mockClassName = '', $callOriginalConstructor = true, $callOriginalClone = true, $callAutoload = true, $mockedMethods = [], $cloneArguments = false) {
}
/**
* @template T
* @phpstan-param string $wsdlFile
* @phpstan-param class-string<T> $originalClassName
* @phpstan-param string $mockClassName
* @phpstan-param bool $callOriginalConstructor
* @phpstan-param array $options
* @phpstan-return PHPUnit_Framework_MockObject_MockObject&T
*/
protected function getMockFromWsdl($wsdlFile, $originalClassName = '', $mockClassName = '', array $methods = [], $callOriginalConstructor = true, array $options = []) {
}
}