Add compatibility trait for PHPUnit constraint classes
This commit is contained in:
parent
8c255923d8
commit
908c8c1f15
28
src/Symfony/Bridge/PhpUnit/ConstraintTrait.php
Normal file
28
src/Symfony/Bridge/PhpUnit/ConstraintTrait.php
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
<?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;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\Constraint\Constraint;
|
||||||
|
use ReflectionClass;
|
||||||
|
|
||||||
|
$r = new ReflectionClass(Constraint::class);
|
||||||
|
if (\PHP_VERSION_ID < 70000 || !$r->getMethod('matches')->hasReturnType()) {
|
||||||
|
trait ConstraintTrait
|
||||||
|
{
|
||||||
|
use Legacy\ConstraintTraitForV6;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
trait ConstraintTrait
|
||||||
|
{
|
||||||
|
use Legacy\ConstraintTraitForV7;
|
||||||
|
}
|
||||||
|
}
|
99
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV6.php
Normal file
99
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV6.php
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<?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;
|
||||||
|
|
||||||
|
use SebastianBergmann\Exporter\Exporter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @internal
|
||||||
|
*/
|
||||||
|
trait ConstraintTraitForV6
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
public function count()
|
||||||
|
{
|
||||||
|
return $this->doCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function toString()
|
||||||
|
{
|
||||||
|
return $this->doToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param mixed $other
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function additionalFailureDescription($other)
|
||||||
|
{
|
||||||
|
return $this->doAdditionalFailureDescription($other);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return Exporter
|
||||||
|
*/
|
||||||
|
protected function exporter()
|
||||||
|
{
|
||||||
|
return $this->exporter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param mixed $other
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
protected function failureDescription($other)
|
||||||
|
{
|
||||||
|
return $this->doFailureDescription($other);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param mixed $other
|
||||||
|
*
|
||||||
|
* @return bool
|
||||||
|
*/
|
||||||
|
protected function matches($other)
|
||||||
|
{
|
||||||
|
return $this->doMatches($other);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doAdditionalFailureDescription($other)
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doCount()
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doFailureDescription($other)
|
||||||
|
{
|
||||||
|
return $this->exporter()->export($other).' '.$this->toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doMatches($other)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doToString()
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
68
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php
Normal file
68
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV7.php
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
<?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
|
||||||
|
*/
|
||||||
|
trait ConstraintTraitForV7
|
||||||
|
{
|
||||||
|
public function count(): int
|
||||||
|
{
|
||||||
|
return $this->doCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function toString(): string
|
||||||
|
{
|
||||||
|
return $this->doToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function additionalFailureDescription($other): string
|
||||||
|
{
|
||||||
|
return $this->doAdditionalFailureDescription($other);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function failureDescription($other): string
|
||||||
|
{
|
||||||
|
return $this->doFailureDescription($other);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function matches($other): bool
|
||||||
|
{
|
||||||
|
return $this->doMatches($other);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doAdditionalFailureDescription($other): string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doCount(): int
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doFailureDescription($other): string
|
||||||
|
{
|
||||||
|
return $this->exporter()->export($other).' '.$this->toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doMatches($other): bool
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function doToString(): string
|
||||||
|
{
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user