|
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]>
|
@@ -55,7 +56,7 @@ public function testCastDateTime($time, $timezone, $xDate, $xTimestamp, $xInfos)
|
55 | 56 |
|
56 | 57 | $stub = new Stub();
|
57 | 58 | $date = new \DateTime($time, new \DateTimeZone($timezone));
|
58 |
| - $cast = DateCaster::castDateTime($date, ['foo' => 'bar'], $stub, false, 0); |
| 59 | + $cast = DateCaster::castDateTime($date, Caster::castObject($date, \DateTime::class), $stub, false, 0); |
59 | 60 |
|
60 | 61 | $xDump = <<<EODUMP
|
61 | 62 | array:1 [
|
@@ -97,6 +98,40 @@ public function provideDateTimes()
|
97 | 98 | ];
|
98 | 99 | }
|
99 | 100 |
|
| 101 | + public function testCastDateTimeWithAdditionalChildProperty() |
| 102 | + { |
| 103 | + $stub = new Stub(); |
| 104 | + $date = new DateTimeChild('2020-02-13 00:00:00.123456', new \DateTimeZone('Europe/Paris')); |
| 105 | + $objectCast = Caster::castObject($date, DateTimeChild::class); |
| 106 | + $dateCast = DateCaster::castDateTime($date, $objectCast, $stub, false, 0); |
| 107 | + |
| 108 | + $xDate = '2020-02-13 00:00:00.123456 Europe/Paris (+01:00)'; |
| 109 | + $xInfo = 'Thursday, February 13, 2020%Afrom now'; |
| 110 | + $xDump = <<<EODUMP |
| 111 | +array:2 [ |
| 112 | + "\\x00Symfony\Component\VarDumper\Tests\Fixtures\DateTimeChild\\x00addedProperty" => "foo" |
| 113 | + "\\x00~\\x00date" => $xDate |
| 114 | +] |
| 115 | +EODUMP; |
| 116 | + |
| 117 | + $this->assertDumpEquals($xDump, $dateCast); |
| 118 | + |
| 119 | + $xDump = <<<EODUMP |
| 120 | +Symfony\Component\VarDumper\Caster\ConstStub { |
| 121 | + +type: 1 |
| 122 | + +class: "$xDate" |
| 123 | + +value: "%A$xInfo%A" |
| 124 | + +cut: 0 |
| 125 | + +handle: 0 |
| 126 | + +refCount: 0 |
| 127 | + +position: 0 |
| 128 | + +attr: [] |
| 129 | +} |
| 130 | +EODUMP; |
| 131 | + |
| 132 | + $this->assertDumpMatchesFormat($xDump, $dateCast["\0~\0date"]); |
| 133 | + } |
| 134 | + |
100 | 135 | /**
|
101 | 136 | * @dataProvider provideIntervals
|
102 | 137 | */
|
|
0 commit comments