trait BcTimestampNormalizerUnixTestTrait

Same name and namespace in other branches
  1. 9 core/modules/rest/tests/src/Functional/BcTimestampNormalizerUnixTestTrait.php \Drupal\Tests\rest\Functional\BcTimestampNormalizerUnixTestTrait

Trait for ResourceTestBase subclasses formatting expected timestamp data.

Hierarchy

21 files declare their use of BcTimestampNormalizerUnixTestTrait
BlockContentResourceTestBase.php in core/modules/block_content/tests/src/Functional/Rest/BlockContentResourceTestBase.php
CommentResourceTestBase.php in core/modules/comment/tests/src/Functional/Rest/CommentResourceTestBase.php
ContactFormResourceTestBase.php in core/modules/contact/tests/src/Functional/Rest/ContactFormResourceTestBase.php
EntitySerializationTest.php in core/modules/serialization/tests/src/Kernel/EntitySerializationTest.php
EntityTestBundleResourceTestBase.php in core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestBundleResourceTestBase.php

... See full list

File

core/modules/rest/tests/src/Functional/BcTimestampNormalizerUnixTestTrait.php, line 8

Namespace

Drupal\Tests\rest\Functional
View source
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,
        ];
    }

}

Members

Title Sort descending Modifiers Object type Summary
BcTimestampNormalizerUnixTestTrait::formatExpectedTimestampItemValues protected function Formats a UNIX timestamp.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.