/
githubmirror
/
framework
Обзор
Документация
Войти
/
githubmirror
/
framework
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
13.x
tests/Foundation/Console/CliDumperTest.php
237 строк
6 KB
Lucas Michot
Remove useless parent::setUp()/tearDown() calls in tests extending PHPUnit's TestCase directly (#60994)
03 авг 2026, 20:54
Не верифицирован
03 авг 2026, 20:54
14a6983
Код
Авторство
О чём код?
<?php namespace Illuminate\Tests\Foundation\Console; use Illuminate\Foundation\Console\CliDumper; use PHPUnit\Framework\TestCase; use ReflectionClass; use stdClass; use Symfony\Component\Console\Output\BufferedOutput; use Symfony\Component\VarDumper\Caster\ReflectionCaster; use Symfony\Component\VarDumper\Cloner\VarCloner; class CliDumperTest extends TestCase { protected function setUp(): void { CliDumper::resolveDumpSourceUsing(function () { return [ '/my-work-director/app/routes/console.php', 'app/routes/console.php', 18, ]; }); } public function testString() { $output = $this->dump('string'); $expected = "\"string\" // app/routes/console.php:18\n"; $this->assertSame($expected, $output); } public function testInteger() { $output = $this->dump(1); $expected = "1 // app/routes/console.php:18\n"; $this->assertSame($expected, $output); } public function testFloat() { $output = $this->dump(1.1); $expected = "1.1 // app/routes/console.php:18\n"; $this->assertSame($expected, $output); } public function testArray() { $output = $this->dump(['string', 1, 1.1, ['string', 1, 1.1]]); $expected = <<<'EOF' array:4 [ 0 => "string" 1 => 1 2 => 1.1 3 => array:3 [ 0 => "string" 1 => 1 2 => 1.1 ] ] // app/routes/console.php:18 EOF; $this->assertSame( str_replace("\r\n", "\n", $expected), str_replace("\r\n", "\n", $output) ); } public function testBoolean() { $output = $this->dump(true); $expected = "true // app/routes/console.php:18\n"; $this->assertSame($expected, $output); } public function testObject() { $user = new stdClass(); $user->name = 'Guus'; $output = $this->dump($user); $objectId = spl_object_id($user); $expected = <<<EOF {#$objectId +"name": "Guus" } // app/routes/console.php:18 EOF; $this->assertSame( str_replace("\r\n", "\n", $expected), str_replace("\r\n", "\n", $output) ); } public function testNull() { $output = $this->dump(null); $expected = "null // app/routes/console.php:18\n"; $this->assertSame($expected, $output); } public function testWhenIsFileViewIsNotViewCompiled() { $file = '/my-work-directory/routes/console.php'; $output = new BufferedOutput(); $dumper = new CliDumper( $output, '/my-work-directory', '/my-work-directory/storage/framework/views' ); $reflection = new ReflectionClass($dumper); $method = $reflection->getMethod('isCompiledViewFile'); $isCompiledViewFile = $method->invoke($dumper, $file); $this->assertFalse($isCompiledViewFile); } public function testWhenIsFileViewIsViewCompiled() { $file = '/my-work-directory/storage/framework/views/6687c33c38b71a8560.php'; $output = new BufferedOutput(); $dumper = new CliDumper( $output, '/my-work-directory', '/my-work-directory/storage/framework/views' ); $reflection = new ReflectionClass($dumper); $method = $reflection->getMethod('isCompiledViewFile'); $isCompiledViewFile = $method->invoke($dumper, $file); $this->assertTrue($isCompiledViewFile); } public function testGetOriginalViewCompiledFile() { $compiled = __DIR__.'/../fixtures/fake-compiled-view.php'; $original = '/my-work-directory/resources/views/welcome.blade.php'; $output = new BufferedOutput(); $dumper = new CliDumper( $output, '/my-work-directory', '/my-work-directory/storage/framework/views' ); $reflection = new ReflectionClass($dumper); $method = $reflection->getMethod('getOriginalFileForCompiledView'); $this->assertSame($original, $method->invoke($dumper, $compiled)); } public function testWhenGetOriginalViewCompiledFileFails() { $compiled = __DIR__.'/../fixtures/fake-compiled-view-without-source-map.php'; $original = $compiled; $output = new BufferedOutput(); $dumper = new CliDumper( $output, '/my-work-directory', '/my-work-directory/storage/framework/views' ); $reflection = new ReflectionClass($dumper); $method = $reflection->getMethod('getOriginalFileForCompiledView'); $this->assertSame($original, $method->invoke($dumper, $compiled)); } public function testUnresolvableSource() { CliDumper::resolveDumpSourceUsing(fn () => null); $output = $this->dump('string'); $expected = "\"string\"\n"; $this->assertSame($expected, $output); } public function testUnresolvableLine() { CliDumper::resolveDumpSourceUsing(function () { return [ '/my-work-directory/resources/views/welcome.blade.php', 'resources/views/welcome.blade.php', null, ]; }); $output = $this->dump('hey from view'); $expected = "\"hey from view\" // resources/views/welcome.blade.php\n"; $this->assertSame($expected, $output); } protected function dump($value) { $output = new BufferedOutput(); $dumper = new CliDumper( $output, '/my-work-directory', '/my-work-directory/storage/framework/views', ); $cloner = tap(new VarCloner())->addCasters(ReflectionCaster::UNSET_CLOSURE_FILE_INFO); $dumper->dumpWithSource($cloner->cloneVar($value)); return $output->fetch(); } protected function tearDown(): void { CliDumper::resolveDumpSourceUsing(null); } }