[VarDumper] add caster for IntlTimeZone
This commit is contained in:
parent
a43f307224
commit
c94217c832
@ -106,6 +106,23 @@ class IntlCaster
|
|||||||
return self::castError($c, $a);
|
return self::castError($c, $a);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function castIntlTimeZone(\IntlTimeZone $c, array $a, Stub $stub, $isNested)
|
||||||
|
{
|
||||||
|
$a += array(
|
||||||
|
Caster::PREFIX_VIRTUAL.'display_name' => $c->getDisplayName(),
|
||||||
|
Caster::PREFIX_VIRTUAL.'id' => $c->getID(),
|
||||||
|
Caster::PREFIX_VIRTUAL.'raw_offset' => $c->getRawOffset(),
|
||||||
|
);
|
||||||
|
|
||||||
|
if ($c->useDaylightTime()) {
|
||||||
|
$a += array(
|
||||||
|
Caster::PREFIX_VIRTUAL.'dst_savings' => $c->getDSTSavings(),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
return self::castError($c, $a);
|
||||||
|
}
|
||||||
|
|
||||||
private static function castError($c, array $a): array
|
private static function castError($c, array $a): array
|
||||||
{
|
{
|
||||||
if ($errorCode = $c->getErrorCode()) {
|
if ($errorCode = $c->getErrorCode()) {
|
||||||
|
@ -119,6 +119,7 @@ abstract class AbstractCloner implements ClonerInterface
|
|||||||
|
|
||||||
'MessageFormatter' => array('Symfony\Component\VarDumper\Caster\IntlCaster', 'castMessageFormatter'),
|
'MessageFormatter' => array('Symfony\Component\VarDumper\Caster\IntlCaster', 'castMessageFormatter'),
|
||||||
'NumberFormatter' => array('Symfony\Component\VarDumper\Caster\IntlCaster', 'castNumberFormatter'),
|
'NumberFormatter' => array('Symfony\Component\VarDumper\Caster\IntlCaster', 'castNumberFormatter'),
|
||||||
|
'IntlTimeZone' => array('Symfony\Component\VarDumper\Caster\IntlCaster', 'castIntlTimeZone'),
|
||||||
|
|
||||||
':curl' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'),
|
':curl' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castCurl'),
|
||||||
':dba' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'),
|
':dba' => array('Symfony\Component\VarDumper\Caster\ResourceCaster', 'castDba'),
|
||||||
|
@ -147,6 +147,44 @@ NumberFormatter {
|
|||||||
MONETARY_GROUPING_SEPARATOR_SYMBOL: "$expectedSymbol18"
|
MONETARY_GROUPING_SEPARATOR_SYMBOL: "$expectedSymbol18"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
EOTXT;
|
||||||
|
$this->assertDumpEquals($expected, $var);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCastIntlTimeZoneWithDST()
|
||||||
|
{
|
||||||
|
$var = \IntlTimeZone::createTimeZone('America/Los_Angeles');
|
||||||
|
|
||||||
|
$expectedDisplayName = $var->getDisplayName();
|
||||||
|
$expectedDSTSavings = $var->getDSTSavings();
|
||||||
|
$expectedID = $var->getID();
|
||||||
|
$expectedRawOffset = $var->getRawOffset();
|
||||||
|
|
||||||
|
$expected = <<<EOTXT
|
||||||
|
IntlTimeZone {
|
||||||
|
display_name: "$expectedDisplayName"
|
||||||
|
id: "$expectedID"
|
||||||
|
raw_offset: $expectedRawOffset
|
||||||
|
dst_savings: $expectedDSTSavings
|
||||||
|
}
|
||||||
|
EOTXT;
|
||||||
|
$this->assertDumpEquals($expected, $var);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testCastIntlTimeZoneWithoutDST()
|
||||||
|
{
|
||||||
|
$var = \IntlTimeZone::createTimeZone('Asia/Bangkok');
|
||||||
|
|
||||||
|
$expectedDisplayName = $var->getDisplayName();
|
||||||
|
$expectedID = $var->getID();
|
||||||
|
$expectedRawOffset = $var->getRawOffset();
|
||||||
|
|
||||||
|
$expected = <<<EOTXT
|
||||||
|
IntlTimeZone {
|
||||||
|
display_name: "$expectedDisplayName"
|
||||||
|
id: "$expectedID"
|
||||||
|
raw_offset: $expectedRawOffset
|
||||||
|
}
|
||||||
EOTXT;
|
EOTXT;
|
||||||
$this->assertDumpEquals($expected, $var);
|
$this->assertDumpEquals($expected, $var);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user