annotate vendor/symfony/var-dumper/Tests/Caster/SplCasterTest.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the Symfony package.
Chris@0 5 *
Chris@0 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Symfony\Component\VarDumper\Tests\Caster;
Chris@0 13
Chris@0 14 use PHPUnit\Framework\TestCase;
Chris@0 15 use Symfony\Component\VarDumper\Test\VarDumperTestTrait;
Chris@0 16
Chris@0 17 /**
Chris@0 18 * @author Grégoire Pineau <lyrixx@lyrixx.info>
Chris@0 19 */
Chris@0 20 class SplCasterTest extends TestCase
Chris@0 21 {
Chris@0 22 use VarDumperTestTrait;
Chris@0 23
Chris@0 24 public function getCastFileInfoTests()
Chris@0 25 {
Chris@17 26 return [
Chris@17 27 [__FILE__, <<<'EOTXT'
Chris@0 28 SplFileInfo {
Chris@0 29 %Apath: "%sCaster"
Chris@0 30 filename: "SplCasterTest.php"
Chris@0 31 basename: "SplCasterTest.php"
Chris@0 32 pathname: "%sSplCasterTest.php"
Chris@0 33 extension: "php"
Chris@0 34 realPath: "%sSplCasterTest.php"
Chris@0 35 aTime: %s-%s-%d %d:%d:%d
Chris@0 36 mTime: %s-%s-%d %d:%d:%d
Chris@0 37 cTime: %s-%s-%d %d:%d:%d
Chris@17 38 inode: %i
Chris@0 39 size: %d
Chris@0 40 perms: 0%d
Chris@0 41 owner: %d
Chris@0 42 group: %d
Chris@0 43 type: "file"
Chris@0 44 writable: true
Chris@0 45 readable: true
Chris@0 46 executable: false
Chris@0 47 file: true
Chris@0 48 dir: false
Chris@0 49 link: false
Chris@0 50 %A}
Chris@0 51 EOTXT
Chris@17 52 ],
Chris@17 53 ['https://google.com/about', <<<'EOTXT'
Chris@0 54 SplFileInfo {
Chris@0 55 %Apath: "https://google.com"
Chris@0 56 filename: "about"
Chris@0 57 basename: "about"
Chris@0 58 pathname: "https://google.com/about"
Chris@0 59 extension: ""
Chris@0 60 realPath: false
Chris@0 61 %A}
Chris@0 62 EOTXT
Chris@17 63 ],
Chris@17 64 ];
Chris@0 65 }
Chris@0 66
Chris@0 67 /** @dataProvider getCastFileInfoTests */
Chris@0 68 public function testCastFileInfo($file, $dump)
Chris@0 69 {
Chris@0 70 $this->assertDumpMatchesFormat($dump, new \SplFileInfo($file));
Chris@0 71 }
Chris@0 72
Chris@0 73 public function testCastFileObject()
Chris@0 74 {
Chris@0 75 $var = new \SplFileObject(__FILE__);
Chris@0 76 $var->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY);
Chris@0 77 $dump = <<<'EOTXT'
Chris@0 78 SplFileObject {
Chris@0 79 %Apath: "%sCaster"
Chris@0 80 filename: "SplCasterTest.php"
Chris@0 81 basename: "SplCasterTest.php"
Chris@0 82 pathname: "%sSplCasterTest.php"
Chris@0 83 extension: "php"
Chris@0 84 realPath: "%sSplCasterTest.php"
Chris@0 85 aTime: %s-%s-%d %d:%d:%d
Chris@0 86 mTime: %s-%s-%d %d:%d:%d
Chris@0 87 cTime: %s-%s-%d %d:%d:%d
Chris@17 88 inode: %i
Chris@0 89 size: %d
Chris@0 90 perms: 0%d
Chris@0 91 owner: %d
Chris@0 92 group: %d
Chris@0 93 type: "file"
Chris@0 94 writable: true
Chris@0 95 readable: true
Chris@0 96 executable: false
Chris@0 97 file: true
Chris@0 98 dir: false
Chris@0 99 link: false
Chris@0 100 %AcsvControl: array:%d [
Chris@0 101 0 => ","
Chris@0 102 1 => """
Chris@0 103 %A]
Chris@0 104 flags: DROP_NEW_LINE|SKIP_EMPTY
Chris@0 105 maxLineLen: 0
Chris@0 106 fstat: array:26 [
Chris@0 107 "dev" => %d
Chris@17 108 "ino" => %i
Chris@0 109 "nlink" => %d
Chris@0 110 "rdev" => 0
Chris@0 111 "blksize" => %i
Chris@0 112 "blocks" => %i
Chris@0 113 …20
Chris@0 114 ]
Chris@0 115 eof: false
Chris@0 116 key: 0
Chris@0 117 }
Chris@0 118 EOTXT;
Chris@0 119 $this->assertDumpMatchesFormat($dump, $var);
Chris@0 120 }
Chris@0 121
Chris@0 122 /**
Chris@0 123 * @dataProvider provideCastSplDoublyLinkedList
Chris@0 124 */
Chris@0 125 public function testCastSplDoublyLinkedList($modeValue, $modeDump)
Chris@0 126 {
Chris@0 127 $var = new \SplDoublyLinkedList();
Chris@0 128 $var->setIteratorMode($modeValue);
Chris@0 129 $dump = <<<EOTXT
Chris@0 130 SplDoublyLinkedList {
Chris@0 131 %Amode: $modeDump
Chris@0 132 dllist: []
Chris@0 133 }
Chris@0 134 EOTXT;
Chris@0 135 $this->assertDumpMatchesFormat($dump, $var);
Chris@0 136 }
Chris@0 137
Chris@0 138 public function provideCastSplDoublyLinkedList()
Chris@0 139 {
Chris@17 140 return [
Chris@17 141 [\SplDoublyLinkedList::IT_MODE_FIFO, 'IT_MODE_FIFO | IT_MODE_KEEP'],
Chris@17 142 [\SplDoublyLinkedList::IT_MODE_LIFO, 'IT_MODE_LIFO | IT_MODE_KEEP'],
Chris@17 143 [\SplDoublyLinkedList::IT_MODE_FIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_FIFO | IT_MODE_DELETE'],
Chris@17 144 [\SplDoublyLinkedList::IT_MODE_LIFO | \SplDoublyLinkedList::IT_MODE_DELETE, 'IT_MODE_LIFO | IT_MODE_DELETE'],
Chris@17 145 ];
Chris@0 146 }
Chris@16 147
Chris@16 148 public function testCastObjectStorageIsntModified()
Chris@16 149 {
Chris@16 150 $var = new \SplObjectStorage();
Chris@16 151 $var->attach(new \stdClass());
Chris@16 152 $var->rewind();
Chris@16 153 $current = $var->current();
Chris@16 154
Chris@16 155 $this->assertDumpMatchesFormat('%A', $var);
Chris@16 156 $this->assertSame($current, $var->current());
Chris@16 157 }
Chris@16 158
Chris@16 159 public function testCastObjectStorageDumpsInfo()
Chris@16 160 {
Chris@16 161 $var = new \SplObjectStorage();
Chris@16 162 $var->attach(new \stdClass(), new \DateTime());
Chris@16 163
Chris@16 164 $this->assertDumpMatchesFormat('%ADateTime%A', $var);
Chris@16 165 }
Chris@16 166
Chris@16 167 public function testCastArrayObject()
Chris@16 168 {
Chris@16 169 if (\defined('HHVM_VERSION')) {
Chris@16 170 $this->markTestSkipped('HHVM as different internal details.');
Chris@16 171 }
Chris@17 172 $var = new \ArrayObject([123]);
Chris@16 173 $var->foo = 234;
Chris@16 174
Chris@16 175 $expected = <<<EOTXT
Chris@16 176 ArrayObject {
Chris@16 177 +"foo": 234
Chris@16 178 flag::STD_PROP_LIST: false
Chris@16 179 flag::ARRAY_AS_PROPS: false
Chris@16 180 iteratorClass: "ArrayIterator"
Chris@16 181 storage: array:1 [
Chris@16 182 0 => 123
Chris@16 183 ]
Chris@0 184 }
Chris@16 185 EOTXT;
Chris@16 186 $this->assertDumpEquals($expected, $var);
Chris@16 187 }
Chris@16 188
Chris@16 189 public function testArrayIterator()
Chris@16 190 {
Chris@16 191 if (\defined('HHVM_VERSION')) {
Chris@16 192 $this->markTestSkipped('HHVM as different internal details.');
Chris@16 193 }
Chris@17 194 $var = new MyArrayIterator([234]);
Chris@16 195
Chris@16 196 $expected = <<<EOTXT
Chris@16 197 Symfony\Component\VarDumper\Tests\Caster\MyArrayIterator {
Chris@16 198 -foo: 123
Chris@16 199 flag::STD_PROP_LIST: false
Chris@16 200 flag::ARRAY_AS_PROPS: false
Chris@16 201 storage: array:1 [
Chris@16 202 0 => 234
Chris@16 203 ]
Chris@16 204 }
Chris@16 205 EOTXT;
Chris@16 206 $this->assertDumpEquals($expected, $var);
Chris@16 207 }
Chris@16 208 }
Chris@16 209
Chris@16 210 class MyArrayIterator extends \ArrayIterator
Chris@16 211 {
Chris@16 212 private $foo = 123;
Chris@16 213 }