From c7a8ce56dc855fb04376145479116b440cb5f5be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Deruss=C3=A9?= Date: Thu, 1 Aug 2019 16:37:33 +0200 Subject: [PATCH] [Bridge/PhpUnit] Add polyfill for expectException* --- .../Legacy/ForwardCompatTestTraitForV5.php | 93 +++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/src/Symfony/Bridge/PhpUnit/Legacy/ForwardCompatTestTraitForV5.php b/src/Symfony/Bridge/PhpUnit/Legacy/ForwardCompatTestTraitForV5.php index 36db32e55f65..83f7db407af8 100644 --- a/src/Symfony/Bridge/PhpUnit/Legacy/ForwardCompatTestTraitForV5.php +++ b/src/Symfony/Bridge/PhpUnit/Legacy/ForwardCompatTestTraitForV5.php @@ -12,12 +12,16 @@ namespace Symfony\Bridge\PhpUnit\Legacy; use PHPUnit\Framework\MockObject\MockObject; +use PHPUnit\Framework\TestCase; /** * @internal */ trait ForwardCompatTestTraitForV5 { + private $forwardCompatExpectedExceptionMessage = ''; + private $forwardCompatExpectedExceptionCode = null; + /** * @return void */ @@ -210,4 +214,93 @@ public static function assertIsIterable($actual, $message = '') { static::assertInternalType('iterable', $actual, $message); } + + /** + * @param string $exception + * + * @return void + */ + public function expectException($exception) + { + if (method_exists(TestCase::class, 'expectException')) { + parent::expectException($exception); + + return; + } + + parent::setExpectedException($exception, $this->forwardCompatExpectedExceptionMessage, $this->forwardCompatExpectedExceptionCode); + } + + /** + * @return void + */ + public function expectExceptionCode($code) + { + if (method_exists(TestCase::class, 'expectExceptionCode')) { + parent::expectExceptionCode($code); + + return; + } + + $this->forwardCompatExpectedExceptionCode = $code; + parent::setExpectedException(parent::getExpectedException(), $this->forwardCompatExpectedExceptionMessage, $this->forwardCompatExpectedExceptionCode); + } + + /** + * @param string $message + * + * @return void + */ + public function expectExceptionMessage($message) + { + if (method_exists(TestCase::class, 'expectExceptionMessage')) { + parent::expectExceptionMessage($message); + + return; + } + + $this->forwardCompatExpectedExceptionMessage = $message; + parent::setExpectedException(parent::getExpectedException(), $this->forwardCompatExpectedExceptionMessage, $this->forwardCompatExpectedExceptionCode); + } + + /** + * @param string $messageRegExp + * + * @return void + */ + public function expectExceptionMessageRegExp($messageRegExp) + { + if (method_exists(TestCase::class, 'expectExceptionMessageRegExp')) { + parent::expectExceptionMessageRegExp($messageRegExp); + + return; + } + + parent::setExpectedExceptionRegExp(parent::getExpectedException(), $messageRegExp, $this->forwardCompatExpectedExceptionCode); + } + + /** + * @param string $exceptionMessage + * + * @return void + */ + public function setExpectedException($exceptionName, $exceptionMessage = '', $exceptionCode = null) + { + $this->forwardCompatExpectedExceptionMessage = $exceptionMessage; + $this->forwardCompatExpectedExceptionCode = $exceptionCode; + + parent::setExpectedException($exceptionName, $exceptionMessage, $exceptionCode); + } + + /** + * @param string $exceptionMessageRegExp + * + * @return void + */ + public function setExpectedExceptionRegExp($exceptionName, $exceptionMessageRegExp = '', $exceptionCode = null) + { + $this->forwardCompatExpectedExceptionCode = $exceptionCode; + + parent::setExpectedExceptionRegExp($exceptionName, $exceptionMessageRegExp, $exceptionCode); + } }