EntityTestComputedFieldNormalizerTest.php

Same filename and directory in other branches
  1. 9 core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestComputedFieldNormalizerTest.php
  2. 11.x core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestComputedFieldNormalizerTest.php

Namespace

Drupal\Tests\entity_test\Functional\Rest

File

core/modules/system/tests/modules/entity_test/tests/src/Functional/Rest/EntityTestComputedFieldNormalizerTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\entity_test\Functional\Rest;

use Drupal\Core\Cache\Cache;
use Drupal\Tests\rest\Functional\AnonResourceTestTrait;

/**
 * Test normalization of computed field.
 *
 * @group rest
 */
class EntityTestComputedFieldNormalizerTest extends EntityTestResourceTestBase {
  use AnonResourceTestTrait;
  
  /**
   * {@inheritdoc}
   */
  protected static $entityTypeId = 'entity_test_computed_field';
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected function setUpAuthorization($method) {
    $this->grantPermissionsToTestedRole([
      'administer entity_test content',
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getExpectedUnauthorizedAccessMessage($method) {
    if ($this->config('rest.settings')
      ->get('bc_entity_resource_permissions')) {
      return parent::getExpectedUnauthorizedAccessMessage($method);
    }
    return "The 'administer entity_test content' permission is required.";
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getExpectedNormalizedEntity() {
    $expected = parent::getExpectedNormalizedEntity();
    $expected['computed_reference_field'] = [];
    $expected['computed_string_field'] = [];
    unset($expected['field_test_text'], $expected['langcode'], $expected['type'], $expected['uuid']);
    // @see \Drupal\entity_test\Plugin\Field\ComputedTestCacheableStringItemList::computeValue().
    $expected['computed_test_cacheable_string_field'] = [
      [
        'value' => 'computed test cacheable string field',
      ],
    ];
    // @see \Drupal\entity_test\Plugin\Field\ComputedTestCacheableIntegerItemList::computeValue().
    $expected['computed_test_cacheable_integer_field'] = [
      [
        'value' => 0,
      ],
    ];
    $expected['uuid'] = [
      0 => [
        'value' => $this->entity
          ->uuid(),
      ],
    ];
    return $expected;
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getExpectedCacheContexts() {
    return Cache::mergeContexts(parent::getExpectedCacheContexts(), [
      'url.query_args:computed_test_cacheable_string_field',
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getExpectedCacheTags() {
    return Cache::mergeTags(parent::getExpectedCacheTags(), [
      'field:computed_test_cacheable_string_field',
    ]);
  }
  
  /**
   * {@inheritdoc}
   */
  public function testPost() : void {
    // Post test not required.
    $this->markTestSkipped();
  }
  
  /**
   * {@inheritdoc}
   */
  public function testPatch() : void {
    // Patch test not required.
    $this->markTestSkipped();
  }
  
  /**
   * {@inheritdoc}
   */
  public function testDelete() : void {
    // Delete test not required.
    $this->markTestSkipped();
  }

}

Classes

Title Deprecated Summary
EntityTestComputedFieldNormalizerTest Test normalization of computed field.

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