|
16 | 16 | use Symfony\Component\VarDumper\Caster\DateCaster; |
17 | 17 | use Symfony\Component\VarDumper\Cloner\Stub; |
18 | 18 | use Symfony\Component\VarDumper\Test\VarDumperTestTrait; |
| 19 | +use Symfony\Component\VarDumper\Tests\Fixtures\DateTimeChild; |
19 | 20 |
|
20 | 21 | /** |
21 | 22 | * @author Dany Maillard <[email protected]> |
@@ -47,7 +48,7 @@ public function testCastDateTime($time, $timezone, $xDate, $xTimestamp, $xInfos) |
47 | 48 | { |
48 | 49 | $stub = new Stub(); |
49 | 50 | $date = new \DateTime($time, new \DateTimeZone($timezone)); |
50 | | - $cast = DateCaster::castDateTime($date, ['foo' => 'bar'], $stub, false, 0); |
| 51 | + $cast = DateCaster::castDateTime($date, Caster::castObject($date, \DateTime::class), $stub, false, 0); |
51 | 52 |
|
52 | 53 | $xDump = <<<EODUMP |
53 | 54 | array:1 [ |
@@ -89,6 +90,40 @@ public function provideDateTimes() |
89 | 90 | ]; |
90 | 91 | } |
91 | 92 |
|
| 93 | + public function testCastDateTimeWithAdditionalChildProperty() |
| 94 | + { |
| 95 | + $stub = new Stub(); |
| 96 | + $date = new DateTimeChild('2020-02-13 00:00:00.123456', new \DateTimeZone('Europe/Paris')); |
| 97 | + $objectCast = Caster::castObject($date, DateTimeChild::class); |
| 98 | + $dateCast = DateCaster::castDateTime($date, $objectCast, $stub, false, 0); |
| 99 | + |
| 100 | + $xDate = '2020-02-13 00:00:00.123456 Europe/Paris (+01:00)'; |
| 101 | + $xInfo = 'Thursday, February 13, 2020%Afrom now'; |
| 102 | + $xDump = <<<EODUMP |
| 103 | +array:2 [ |
| 104 | + "\\x00Symfony\Component\VarDumper\Tests\Fixtures\DateTimeChild\\x00addedProperty" => "foo" |
| 105 | + "\\x00~\\x00date" => $xDate |
| 106 | +] |
| 107 | +EODUMP; |
| 108 | + |
| 109 | + $this->assertDumpEquals($xDump, $dateCast); |
| 110 | + |
| 111 | + $xDump = <<<EODUMP |
| 112 | +Symfony\Component\VarDumper\Caster\ConstStub { |
| 113 | + +type: 1 |
| 114 | + +class: "$xDate" |
| 115 | + +value: "%A$xInfo%A" |
| 116 | + +cut: 0 |
| 117 | + +handle: 0 |
| 118 | + +refCount: 0 |
| 119 | + +position: 0 |
| 120 | + +attr: [] |
| 121 | +} |
| 122 | +EODUMP; |
| 123 | + |
| 124 | + $this->assertDumpMatchesFormat($xDump, $dateCast["\0~\0date"]); |
| 125 | + } |
| 126 | + |
92 | 127 | /** |
93 | 128 | * @dataProvider provideIntervals |
94 | 129 | */ |
|
0 commit comments