* * 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\Test\VarDumperTestTrait; /** * @author Grégoire Pineau */ class SplCasterTest extends TestCase { use VarDumperTestTrait; public function getCastFileInfoTests() { return array( array(__FILE__, <<<'EOTXT' SplFileInfo { %Apath: "%sCaster" filename: "SplCasterTest.php" basename: "SplCasterTest.php" pathname: "%sSplCasterTest.php" extension: "php" realPath: "%sSplCasterTest.php" aTime: %s-%s-%d %d:%d:%d mTime: %s-%s-%d %d:%d:%d cTime: %s-%s-%d %d:%d:%d inode: %d size: %d perms: 0%d owner: %d group: %d type: "file" writable: true readable: true executable: false file: true dir: false link: false %A} EOTXT ), array('https://google.com/about', <<<'EOTXT' SplFileInfo { %Apath: "https://google.com" filename: "about" basename: "about" pathname: "https://google.com/about" extension: "" realPath: false %A} EOTXT ), ); } /** @dataProvider getCastFileInfoTests */ public function testCastFileInfo($file, $dump) { $this->assertDumpMatchesFormat($dump, new \SplFileInfo($file)); } public function testCastFileObject() { $var = new \SplFileObject(__FILE__); $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY); $dump = <<<'EOTXT' SplFileObject { %Apath: "%sCaster" filename: "SplCasterTest.php" basename: "SplCasterTest.php" pathname: "%sSplCasterTest.php" extension: "php" realPath: "%sSplCasterTest.php" aTime: %s-%s-%d %d:%d:%d mTime: %s-%s-%d %d:%d:%d cTime: %s-%s-%d %d:%d:%d inode: %d size: %d perms: 0%d owner: %d group: %d type: "file" writable: true readable: true executable: false file: true dir: false link: false %AcsvControl: array:%d [ 0 => "," 1 => """ %A] flags: DROP_NEW_LINE|SKIP_EMPTY maxLineLen: 0 fstat: array:26 [ "dev" => %d "ino" => %d "nlink" => %d "rdev" => 0 "blksize" => %i "blocks" => %i …20 ] eof: false key: 0 } EOTXT; $this->assertDumpMatchesFormat($dump, $var); } /** * @dataProvider provideCastSplDoublyLinkedList */ public function testCastSplDoublyLinkedList($modeValue, $modeDump) { $var = new \SplDoublyLinkedList(); $var->setIteratorMode($modeValue); $dump = <<assertDumpMatchesFormat($dump, $var); } public function provideCastSplDoublyLinkedList() { return array( array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'), array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'), array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'), array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'), ); } public function testCastObjectStorageIsntModified() { $var = new \SplObjectStorage(); $var->attach(new \stdClass()); $var->rewind(); $current = $var->current(); $this->assertDumpMatchesFormat('%A', $var); $this->assertSame($current, $var->current()); } public function testCastObjectStorageDumpsInfo() { $var = new \SplObjectStorage(); $var->attach(new \stdClass(), new \DateTime()); $this->assertDumpMatchesFormat('%ADateTime%A', $var); } } __halt_compiler();----SIGNATURE:----oVzihAIzk/cbT0rOeAo5UoG+ueZtKgNAnw5Q2avM4oaSQoNO3F9OpC1qC3zweyHnP1Mnk7dZ6f2XxN8P0GYTlsGuC937+D/n7Wwx1I4odIhtHBBhGE/GhAsLHR56pENQAk6eadM98LHeP6RgJsp8zTBuyBXEFLSgQ8QR7SS9xvimf0Yx1HSzh7qLIDG7LK4ie216NoMuoXZTxaMnDp6DObGhZDak35sXd+BfWBhMgsEk4C9niHlWXsGsXr7wj31ya6A846a0vmQXPHQ8EupcCZjK7AyBG34xu+u7nWnB0PdHXdD8lhh2jnM9lCaJIg/Wz1pkO+NlQYLuKAkjpgN1koch9W2wY8WKZQ2bhSR5WAWXtTcD1MO2TK8XSelBvE1niBNcaj0SfWTivtd78heebzQlVkbjKhnHD1lNCfOE22W+ImdZ48acTRrDWzHafuCT+YCLOyUcODSxWFM2nnjUtswR1hXfCB+sRl920q7mRthr31LMsU29kCim5UPKeqYajt+0FeaVnOxVwJR0tCKLPv7CYHIvv1wBOv4dowLlaFW+vUSoV2fw1bnbWomOCiMV3eRUTVQEugSG2xqUnPZTsPJC/14TKULLECUjsZ/aTC71wDb0KkMzlYYXxN4CwOa5QB6o1Q673LHfBgmVAs9jVNMSg8wyetkrapXPkkMzPDA=----ATTACHMENT:----MzA3OTA5ODkwMDYxODU2OCA2MDQwNDUwNjIzODA4OTMxIDU0OTI3NTM2MDE5NTQ2Mjc=