Skip to content

Commit

Permalink
[PhpUnitBridge] Fix ExpectDeprecationTrait::expectDeprecation() conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
fancyweb committed Jun 9, 2020
1 parent 0b19249 commit 1e61bde
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 12 deletions.
22 changes: 10 additions & 12 deletions src/Symfony/Bridge/PhpUnit/ExpectDeprecationTrait.php
Expand Up @@ -11,21 +11,19 @@

namespace Symfony\Bridge\PhpUnit;

use Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerTrait;
use Symfony\Bridge\PhpUnit\Legacy\ExpectDeprecationTraitBeforeV8_4;

trait ExpectDeprecationTrait
{
if (version_compare(\PHPUnit\Runner\Version::id(), '8.4.0', '<')) {
trait ExpectDeprecationTrait
{
use ExpectDeprecationTraitBeforeV8_4;
}
} else {
/**
* @param string $message
*
* @return void
* @method void expectDeprecation(string $message)
*/
protected function expectDeprecation($message)
trait ExpectDeprecationTrait
{
if (!SymfonyTestsListenerTrait::$previousErrorHandler) {
SymfonyTestsListenerTrait::$previousErrorHandler = set_error_handler([SymfonyTestsListenerTrait::class, 'handleError']);
}

SymfonyTestsListenerTrait::$expectedDeprecations[] = $message;
use \Symfony\Bridge\PhpUnit\Legacy\ExpectDeprecationTrait;
}
}
50 changes: 50 additions & 0 deletions src/Symfony/Bridge/PhpUnit/Legacy/ExpectDeprecationTrait.php
@@ -0,0 +1,50 @@
<?php

/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Symfony\Bridge\PhpUnit\Legacy;

/**
* @internal use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait instead.
*/
trait ExpectDeprecationTrait
{
/**
* @param string $message
*/
public function expectDeprecation(): void
{
if (1 > func_num_args() || !\is_string($message = func_get_arg(0))) {
throw new \InvalidArgumentException(sprintf('The "%s()" method requires the string $message argument.', __FUNCTION__));
}

if (!SymfonyTestsListenerTrait::$previousErrorHandler) {
SymfonyTestsListenerTrait::$previousErrorHandler = set_error_handler([SymfonyTestsListenerTrait::class, 'handleError']);
}

SymfonyTestsListenerTrait::$expectedDeprecations[] = $message;
}

/**
* @internal use expectDeprecation() instead.
*/
public function expectDeprecationMessage(string $message): void
{
throw new \BadMethodCallException(sprintf('The "%s()" method is not supported by Symfony\'s PHPUnit Bridge ExpectDeprecationTrait, pass the message to expectDeprecation() instead.', __FUNCTION__));
}

/**
* @internal use expectDeprecation() instead.
*/
public function expectDeprecationMessageMatches(string $regularExpression): void
{
throw new \BadMethodCallException(sprintf('The "%s()" method is not supported by Symfony\'s PHPUnit Bridge ExpectDeprecationTrait.', __FUNCTION__));
}
}
@@ -0,0 +1,32 @@
<?php

/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Symfony\Bridge\PhpUnit\Legacy;

/**
* @internal, use Symfony\Bridge\PhpUnit\ExpectDeprecationTrait instead.
*/
trait ExpectDeprecationTraitBeforeV8_4
{
/**
* @param string $message
*
* @return void
*/
protected function expectDeprecation($message)
{
if (!SymfonyTestsListenerTrait::$previousErrorHandler) {
SymfonyTestsListenerTrait::$previousErrorHandler = set_error_handler([SymfonyTestsListenerTrait::class, 'handleError']);
}

SymfonyTestsListenerTrait::$expectedDeprecations[] = $message;
}
}

0 comments on commit 1e61bde

Please sign in to comment.