Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait
This commit is contained in:
parent
5a4be6841d
commit
f79ad80009
@ -20,9 +20,19 @@ if (\PHP_VERSION_ID < 70000 || !$r->getMethod('matches')->hasReturnType()) {
|
||||
{
|
||||
use Legacy\ConstraintTraitForV6;
|
||||
}
|
||||
} else {
|
||||
} elseif ($r->getProperty('exporter')->isProtected()) {
|
||||
trait ConstraintTrait
|
||||
{
|
||||
use Legacy\ConstraintTraitForV7;
|
||||
}
|
||||
} elseif (\PHP_VERSION < 70100 || !$r->getMethod('evaluate')->hasReturnType()) {
|
||||
trait ConstraintTrait
|
||||
{
|
||||
use Legacy\ConstraintTraitForV8;
|
||||
}
|
||||
} else {
|
||||
trait ConstraintTrait
|
||||
{
|
||||
use Legacy\ConstraintTraitForV9;
|
||||
}
|
||||
}
|
||||
|
62
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintLogicTrait.php
Normal file
62
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintLogicTrait.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?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 ConstraintLogicTrait
|
||||
{
|
||||
private function doEvaluate($other, $description, $returnResult)
|
||||
{
|
||||
$success = false;
|
||||
|
||||
if ($this->matches($other)) {
|
||||
$success = true;
|
||||
}
|
||||
|
||||
if ($returnResult) {
|
||||
return $success;
|
||||
}
|
||||
|
||||
if (!$success) {
|
||||
$this->fail($other, $description);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
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 '';
|
||||
}
|
||||
}
|
@ -18,6 +18,14 @@ use SebastianBergmann\Exporter\Exporter;
|
||||
*/
|
||||
trait ConstraintTraitForV6
|
||||
{
|
||||
/**
|
||||
* @return bool|null
|
||||
*/
|
||||
public function evaluate($other, $description = '', $returnResult = false)
|
||||
{
|
||||
return $this->doEvaluate($other, $description, $returnResult);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
@ -86,6 +94,25 @@ trait ConstraintTraitForV6
|
||||
return 1;
|
||||
}
|
||||
|
||||
private function doEvaluate($other, $description, $returnResult)
|
||||
{
|
||||
$success = false;
|
||||
|
||||
if ($this->matches($other)) {
|
||||
$success = true;
|
||||
}
|
||||
|
||||
if ($returnResult) {
|
||||
return $success;
|
||||
}
|
||||
|
||||
if (!$success) {
|
||||
$this->fail($other, $description);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private function doFailureDescription($other)
|
||||
{
|
||||
return $this->exporter()->export($other).' '.$this->toString();
|
||||
|
@ -16,6 +16,16 @@ namespace Symfony\Bridge\PhpUnit\Legacy;
|
||||
*/
|
||||
trait ConstraintTraitForV7
|
||||
{
|
||||
use ConstraintLogicTrait;
|
||||
|
||||
/**
|
||||
* @return bool|null
|
||||
*/
|
||||
public function evaluate($other, $description = '', $returnResult = false)
|
||||
{
|
||||
return $this->doEvaluate($other, $description, $returnResult);
|
||||
}
|
||||
|
||||
public function count(): int
|
||||
{
|
||||
return $this->doCount();
|
||||
@ -40,29 +50,4 @@ trait ConstraintTraitForV7
|
||||
{
|
||||
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 '';
|
||||
}
|
||||
}
|
||||
|
53
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV8.php
Normal file
53
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV8.php
Normal file
@ -0,0 +1,53 @@
|
||||
<?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 ConstraintTraitForV8
|
||||
{
|
||||
use ConstraintLogicTrait;
|
||||
|
||||
/**
|
||||
* @return bool|null
|
||||
*/
|
||||
public function evaluate($other, $description = '', $returnResult = false)
|
||||
{
|
||||
return $this->doEvaluate($other, $description, $returnResult);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
50
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV9.php
Normal file
50
src/Symfony/Bridge/PhpUnit/Legacy/ConstraintTraitForV9.php
Normal file
@ -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
|
||||
*/
|
||||
trait ConstraintTraitForV9
|
||||
{
|
||||
use ConstraintLogicTrait;
|
||||
|
||||
public function evaluate($other, string $description = '', bool $returnResult = false): ?bool
|
||||
{
|
||||
return $this->doEvaluate($other, $description, $returnResult);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user