BcTimestampNormalizerUnixTestTrait.php in Drupal 8
Same filename and directory in other branches
Namespace
Drupal\Tests\rest\FunctionalFile
core/modules/rest/tests/src/Functional/BcTimestampNormalizerUnixTestTrait.phpView source
<?php
namespace Drupal\Tests\rest\Functional;
/**
* Trait for ResourceTestBase subclasses formatting expected timestamp data.
*/
trait BcTimestampNormalizerUnixTestTrait {
/**
* Formats a UNIX timestamp.
*
* Depending on the 'bc_timestamp_normalizer_unix' setting. The return will be
* an RFC3339 date string or the same timestamp that was passed in.
*
* @param int $timestamp
* The timestamp value to format.
*
* @return string|int
* The formatted RFC3339 date string or UNIX timestamp.
*
* @see \Drupal\serialization\Normalizer\TimestampItemNormalizer
*/
protected function formatExpectedTimestampItemValues($timestamp) {
// If the setting is enabled, just return the timestamp as-is now.
if ($this
->config('serialization.settings')
->get('bc_timestamp_normalizer_unix')) {
return [
'value' => $timestamp,
];
}
// Otherwise, format the date string to the same that
// \Drupal\serialization\Normalizer\TimestampItemNormalizer will produce.
$date = new \DateTime();
$date
->setTimestamp($timestamp);
// Per \Drupal\Core\TypedData\Plugin\DataType\Timestamp::getDateTime(), they
// default to string representations in the UTC timezone.
$date
->setTimezone(new \DateTimeZone('UTC'));
// Format is also added to the expected return values.
return [
'value' => $date
->format(\DateTime::RFC3339),
'format' => \DateTime::RFC3339,
];
}
}
Traits
Name | Description |
---|---|
BcTimestampNormalizerUnixTestTrait | Trait for ResourceTestBase subclasses formatting expected timestamp data. |