From fc693078652aad47c5fb12c585789a0eaf11a806 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Sun, 29 Apr 2018 10:04:33 +0200 Subject: [PATCH] Add an implementation just for php 7.0 php 7 does not have the void return type. --- .../Bridge/PhpUnit/Legacy/TestRunnerForV6.php | 2 +- .../Bridge/PhpUnit/Legacy/TestRunnerForV7.php | 49 +++++++++++++++++++ .../Bridge/PhpUnit/TextUI/TestRunner.php | 4 +- 3 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV7.php diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV6.php b/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV6.php index d709b87387..6da7c65448 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV6.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV6.php @@ -24,7 +24,7 @@ class TestRunnerForV6 extends BaseRunner /** * {@inheritdoc} */ - protected function handleConfiguration(array &$arguments): void + protected function handleConfiguration(array &$arguments) { $listener = new SymfonyTestsListener(); diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV7.php b/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV7.php new file mode 100644 index 0000000000..a175fb65d7 --- /dev/null +++ b/src/Symfony/Bridge/PhpUnit/Legacy/TestRunnerForV7.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bridge\PhpUnit\Legacy; + +use PHPUnit\TextUI\TestRunner as BaseRunner; +use Symfony\Bridge\PhpUnit\SymfonyTestsListener; + +/** + * {@inheritdoc} + * + * @internal + */ +class TestRunnerForV7 extends BaseRunner +{ + /** + * {@inheritdoc} + */ + protected function handleConfiguration(array &$arguments): void + { + $listener = new SymfonyTestsListener(); + + parent::handleConfiguration($arguments); + + $arguments['listeners'] = isset($arguments['listeners']) ? $arguments['listeners'] : array(); + + $registeredLocally = false; + + foreach ($arguments['listeners'] as $registeredListener) { + if ($registeredListener instanceof SymfonyTestsListener) { + $registeredListener->globalListenerDisabled(); + $registeredLocally = true; + break; + } + } + + if (!$registeredLocally) { + $arguments['listeners'][] = $listener; + } + } +} diff --git a/src/Symfony/Bridge/PhpUnit/TextUI/TestRunner.php b/src/Symfony/Bridge/PhpUnit/TextUI/TestRunner.php index af1abd3866..7b8d162e53 100644 --- a/src/Symfony/Bridge/PhpUnit/TextUI/TestRunner.php +++ b/src/Symfony/Bridge/PhpUnit/TextUI/TestRunner.php @@ -13,8 +13,10 @@ namespace Symfony\Bridge\PhpUnit\TextUI; if (class_exists('PHPUnit_Runner_Version') && version_compare(\PHPUnit_Runner_Version::id(), '6.0.0', '<')) { class_alias('Symfony\Bridge\PhpUnit\Legacy\TestRunnerForV5', 'Symfony\Bridge\PhpUnit\TextUI\TestRunner'); -} else { +} elseif (class_exists('PHPUnit_Runner_Version') && version_compare(\PHPUnit_Runner_Version::id(), '7.0.0', '<')) { class_alias('Symfony\Bridge\PhpUnit\Legacy\TestRunnerForV6', 'Symfony\Bridge\PhpUnit\TextUI\TestRunner'); +} else { + class_alias('Symfony\Bridge\PhpUnit\Legacy\TestRunnerForV7', 'Symfony\Bridge\PhpUnit\TextUI\TestRunner'); } if (false) {