mirror of
https://github.com/barryvdh/ReflectionDocBlock.git
synced 2026-08-18 01:57:13 +00:00
Introduce safe preg_split
Removes the need for extra assertions which makes the code more readable, and reduces the overhead of an is_array check.
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace phpDocumentor\Reflection;
|
||||
|
||||
use phpDocumentor\Reflection\Exception\PcreException;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use function set_error_handler;
|
||||
use const E_WARNING;
|
||||
|
||||
final class PregSplitTest extends TestCase
|
||||
{
|
||||
/** @var callable|null */
|
||||
private $errorHandler = null;
|
||||
|
||||
protected function tearDown() : void
|
||||
{
|
||||
if ($this->errorHandler === null) {
|
||||
return;
|
||||
}
|
||||
|
||||
set_error_handler($this->errorHandler, E_WARNING);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \phpDocumentor\Reflection\Utils::pregSplit
|
||||
*/
|
||||
public function testSimplePregSplit() : void
|
||||
{
|
||||
$result = Utils::pregSplit('/\s/', 'word split');
|
||||
|
||||
$this->assertSame(['word', 'split'], $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers \phpDocumentor\Reflection\Utils::pregSplit
|
||||
*/
|
||||
public function testPregSplitThrowsOnError() : void
|
||||
{
|
||||
//We need to disable the error handler for phpunit... because we expect some errors here
|
||||
$this->errorHandler = set_error_handler(static function () : void {
|
||||
}, E_WARNING);
|
||||
|
||||
$this->expectException(PcreException::class);
|
||||
Utils::pregSplit('~InvalidRegular)Expression~', 'some word');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user