Skip to content

Commit

Permalink
bug #37153 [PhpUnitBridge] Fix ExpectDeprecationTrait::expectDeprecat…
Browse files Browse the repository at this point in the history
…ion() conflict (fancyweb)

This PR was merged into the 5.1 branch.

Discussion
----------

[PhpUnitBridge] Fix ExpectDeprecationTrait::expectDeprecation() conflict

| Q             | A
| ------------- | ---
| Branch?       | 5.1
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | #37133
| License       | MIT
| Doc PR        | -

ExpectDeprecationTrait::expectDeprecation() must be compatible with TestCase::expectDeprecation(). I'm personally against a renaming on our side because this name is the best.

Commits
-------

ea5bb24 [PhpUnitBridge] Fix ExpectDeprecationTrait::expectDeprecation() conflict
  • Loading branch information
fabpot committed Jun 10, 2020
2 parents 6d6d989 + ea5bb24 commit 5cefcc2
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 12 deletions.
23 changes: 11 additions & 12 deletions src/Symfony/Bridge/PhpUnit/ExpectDeprecationTrait.php
Expand Up @@ -11,21 +11,20 @@

namespace Symfony\Bridge\PhpUnit;

use Symfony\Bridge\PhpUnit\Legacy\SymfonyTestsListenerTrait;
use Symfony\Bridge\PhpUnit\Legacy\ExpectDeprecationTraitBeforeV8_4;
use Symfony\Bridge\PhpUnit\Legacy\ExpectDeprecationTraitForV8_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 ExpectDeprecationTraitForV8_4;
}
}
@@ -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,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 ExpectDeprecationTraitForV8_4
{
/**
* @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 comments on commit 5cefcc2

Please sign in to comment.