Patch PHPUnit mock objects to work correctly with PHP 7.4

This commit is contained in:
Alexander Makarov
2019-12-11 11:57:13 +03:00
parent 69b1966b4a
commit e88cc3888a
3 changed files with 366 additions and 214 deletions

View File

@ -84,7 +84,8 @@
"phpunit/phpunit": "4.8.34", "phpunit/phpunit": "4.8.34",
"cebe/indent": "~1.0.2", "cebe/indent": "~1.0.2",
"friendsofphp/php-cs-fixer": "~2.2.3", "friendsofphp/php-cs-fixer": "~2.2.3",
"johnkary/phpunit-speedtrap": "^1.0" "johnkary/phpunit-speedtrap": "^1.0",
"cweagans/composer-patches": "^1.6"
}, },
"repositories": [ "repositories": [
{ {
@ -110,6 +111,12 @@
"extra": { "extra": {
"branch-alias": { "branch-alias": {
"dev-master": "2.0.x-dev" "dev-master": "2.0.x-dev"
},
"composer-exit-on-patch-failure": true,
"patches": {
"phpunit/phpunit-mock-objects": {
"Fix PHP 7 compatibility": "./tests/phpunit_mock_objects.patch"
}
} }
} }
} }

557
composer.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,14 @@
diff --git a/src/Framework/MockObject/Generator.php b/src/Framework/MockObject/Generator.php
index 3df3abb..8407182 100644
--- a/src/Framework/MockObject/Generator.php
+++ b/src/Framework/MockObject/Generator.php
@@ -1032,7 +1032,8 @@ protected function getMethodParameters(ReflectionMethod $method, $forCall = fals
if (!$forCall) {
if ($this->hasType($parameter)) {
- $typeDeclaration = (string) $parameter->getType() . ' ';
+ $type = $parameter->getType();
+ $typeDeclaration = (PHP_VERSION_ID >= 70100 ? $type->getName() : (string) $type) . ' ';
} elseif ($parameter->isArray()) {
$typeDeclaration = 'array ';
} elseif ((defined('HHVM_VERSION') || version_compare(PHP_VERSION, '5.4.0', '>='))