Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\VarDumper\Tests\Caster; Chris@0: Chris@0: use PHPUnit\Framework\TestCase; Chris@0: use Symfony\Component\VarDumper\Test\VarDumperTestTrait; Chris@0: Chris@0: /** Chris@0: * @author Grégoire Pineau Chris@0: */ Chris@0: class SplCasterTest extends TestCase Chris@0: { Chris@0: use VarDumperTestTrait; Chris@0: Chris@0: public function getCastFileInfoTests() Chris@0: { Chris@0: return array( Chris@0: array(__FILE__, <<<'EOTXT' Chris@0: SplFileInfo { Chris@0: %Apath: "%sCaster" Chris@0: filename: "SplCasterTest.php" Chris@0: basename: "SplCasterTest.php" Chris@0: pathname: "%sSplCasterTest.php" Chris@0: extension: "php" Chris@0: realPath: "%sSplCasterTest.php" Chris@0: aTime: %s-%s-%d %d:%d:%d Chris@0: mTime: %s-%s-%d %d:%d:%d Chris@0: cTime: %s-%s-%d %d:%d:%d Chris@0: inode: %d Chris@0: size: %d Chris@0: perms: 0%d Chris@0: owner: %d Chris@0: group: %d Chris@0: type: "file" Chris@0: writable: true Chris@0: readable: true Chris@0: executable: false Chris@0: file: true Chris@0: dir: false Chris@0: link: false Chris@0: %A} Chris@0: EOTXT Chris@0: ), Chris@0: array('https://google.com/about', <<<'EOTXT' Chris@0: SplFileInfo { Chris@0: %Apath: "https://google.com" Chris@0: filename: "about" Chris@0: basename: "about" Chris@0: pathname: "https://google.com/about" Chris@0: extension: "" Chris@0: realPath: false Chris@0: %A} Chris@0: EOTXT Chris@0: ), Chris@0: ); Chris@0: } Chris@0: Chris@0: /** @dataProvider getCastFileInfoTests */ Chris@0: public function testCastFileInfo($file, $dump) Chris@0: { Chris@0: $this->assertDumpMatchesFormat($dump, new \SplFileInfo($file)); Chris@0: } Chris@0: Chris@0: public function testCastFileObject() Chris@0: { Chris@0: $var = new \SplFileObject(__FILE__); Chris@0: $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY); Chris@0: $dump = <<<'EOTXT' Chris@0: SplFileObject { Chris@0: %Apath: "%sCaster" Chris@0: filename: "SplCasterTest.php" Chris@0: basename: "SplCasterTest.php" Chris@0: pathname: "%sSplCasterTest.php" Chris@0: extension: "php" Chris@0: realPath: "%sSplCasterTest.php" Chris@0: aTime: %s-%s-%d %d:%d:%d Chris@0: mTime: %s-%s-%d %d:%d:%d Chris@0: cTime: %s-%s-%d %d:%d:%d Chris@0: inode: %d Chris@0: size: %d Chris@0: perms: 0%d Chris@0: owner: %d Chris@0: group: %d Chris@0: type: "file" Chris@0: writable: true Chris@0: readable: true Chris@0: executable: false Chris@0: file: true Chris@0: dir: false Chris@0: link: false Chris@0: %AcsvControl: array:%d [ Chris@0: 0 => "," Chris@0: 1 => """ Chris@0: %A] Chris@0: flags: DROP_NEW_LINE|SKIP_EMPTY Chris@0: maxLineLen: 0 Chris@0: fstat: array:26 [ Chris@0: "dev" => %d Chris@0: "ino" => %d Chris@0: "nlink" => %d Chris@0: "rdev" => 0 Chris@0: "blksize" => %i Chris@0: "blocks" => %i Chris@0: …20 Chris@0: ] Chris@0: eof: false Chris@0: key: 0 Chris@0: } Chris@0: EOTXT; Chris@0: $this->assertDumpMatchesFormat($dump, $var); Chris@0: } Chris@0: Chris@0: /** Chris@0: * @dataProvider provideCastSplDoublyLinkedList Chris@0: */ Chris@0: public function testCastSplDoublyLinkedList($modeValue, $modeDump) Chris@0: { Chris@0: $var = new \SplDoublyLinkedList(); Chris@0: $var->setIteratorMode($modeValue); Chris@0: $dump = <<assertDumpMatchesFormat($dump, $var); Chris@0: } Chris@0: Chris@0: public function provideCastSplDoublyLinkedList() Chris@0: { Chris@0: return array( Chris@0: array(\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'), Chris@0: array(\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'), Chris@0: array(\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'), Chris@0: array(\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'), Chris@0: ); Chris@0: } Chris@0: }