* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\VarDumper\Tests\Caster; use PHPUnit\Framework\TestCase; use Symfony\Component\VarDumper\Caster\ArgsStub; use Symfony\Component\VarDumper\Caster\ClassStub; use Symfony\Component\VarDumper\Caster\LinkStub; use Symfony\Component\VarDumper\Cloner\VarCloner; use Symfony\Component\VarDumper\Dumper\HtmlDumper; use Symfony\Component\VarDumper\Test\VarDumperTestTrait; use Symfony\Component\VarDumper\Tests\Fixtures\FooInterface; class StubCasterTest extends TestCase { use VarDumperTestTrait; public function testArgsStubWithDefaults($foo = 234, $bar = 456) { $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { $foo: 123 } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testArgsStubWithExtraArgs($foo = 234) { $args = array(new ArgsStub(array(123, 456), __FUNCTION__, __CLASS__)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { $foo: 123 ...: { 456 } } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testArgsStubNoParamWithExtraArgs() { $args = array(new ArgsStub(array(123), __FUNCTION__, __CLASS__)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { 123 } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testArgsStubWithClosure() { $args = array(new ArgsStub(array(123), '{closure}', null)); $expectedDump = <<<'EODUMP' array:1 [ 0 => { 123 } ] EODUMP; $this->assertDumpMatchesFormat($expectedDump, $args); } public function testLinkStub() { $var = array(new LinkStub(__CLASS__, 0, __FILE__)); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' array:1 [ 0 => "Symfony\Component\VarDumper\Tests\Caster\StubCasterTest" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testLinkStubWithNoFileLink() { $var = array(new LinkStub('example.com', 0, 'http://example.com')); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dumper->setDisplayOptions(array('fileLinkFormat' => '%f:%l')); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' array:1 [ 0 => "example.com" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStub() { $var = array(new ClassStub('hello', array(FooInterface::class, 'foo'))); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); $expectedDump = <<<'EODUMP' array:1 [ 0 => "hello" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStubWithNotExistingClass() { $var = array(new ClassStub(NotExisting::class)); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dump = $dumper->dump($cloner->cloneVar($var), true); $expectedDump = <<<'EODUMP' array:1 [ 0 => "Symfony\Component\VarDumper\Tests\Caster\NotExisting" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } public function testClassStubWithNotExistingMethod() { $var = array(new ClassStub('hello', array(FooInterface::class, 'missing'))); $cloner = new VarCloner(); $dumper = new HtmlDumper(); $dumper->setDumpHeader(''); $dumper->setDumpBoundaries('', ''); $dump = $dumper->dump($cloner->cloneVar($var), true, array('fileLinkFormat' => '%f:%l')); $expectedDump = <<<'EODUMP' array:1 [ 0 => "hello" ] EODUMP; $this->assertStringMatchesFormat($expectedDump, $dump); } } __halt_compiler();----SIGNATURE:----Jts+3Huk5IrndL5JlQiaJnOT2QbBHPC+Z4+gNBZ4nluT+f3vvbOBA0Xry31RYh5ol1zCYpTBEYYUpeCw5NNO/mjN07I0dH2E6iHjhKFO6dxvKvJ3p3uirDi4EvbwpoX+lcbSfEb1Gv8MY4W4xaj1L7o8Prjn8knDftJ1ThcHu5BDi3aCh6wRpp6Y9VEzy7kWjgfvtwjMXbhydMvG4quU9x7WFVP0tM5UCWdOtr5ouO8HKsbnmKVFBSd68/sQgDgMfovZZrrXOwaFkMFVlam/Gr/8LLCnvy78XEv6Wrp6/8M0BiQHCluFh1ZiITJOg0b8A/Ix7cJ8fCgE3DpjlELiT6wIafG69yU5JCBEDEA/YrMSQe1yYCok7BW3lYYnW4EyINa20wdBZQIs1p/p2KrOjOMS9lU9zA4mzNCLfXX/24avSeOEfAYj3Gp9YScucjEjwFCIxJDlin1ptn3EFbXre7WsdpTi5bSJeGsQBopz1BCFcGs/hA1DrpqCF/AzqeQmiAMxH97MAR+iCN3CLm8eWOk1cOE8rTK7WCqEEX03EkSrmfUv+dplbA+mYsWxEiGFJH7RsgS0dlbYN2j/ui5q6jQuw7eU/zhucxI6CrokDT8T5kHih36FYc3WhCzrVfTILU95fF8DAahJWqTsLH6ZgMAhzMLmvFAahnxYR05TZxw=----ATTACHMENT:----MTYwNzg0MTk0NjE3NzM2MSA1NDk3MDA0NTMwOTcxMzc5IDYyNjY0NDk2ODIxOTMyNjU=