You are here

public function ResourceTypeRepositoryTest::testResourceTypeFieldAliasing in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php \Drupal\Tests\jsonapi\Kernel\ResourceType\ResourceTypeRepositoryTest::testResourceTypeFieldAliasing()

Tests that resource type fields can be aliased per resource type.

File

core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php, line 173

Class

ResourceTypeRepositoryTest
@coversDefaultClass \Drupal\jsonapi\ResourceType\ResourceTypeRepository @group jsonapi

Namespace

Drupal\Tests\jsonapi\Kernel\ResourceType

Code

public function testResourceTypeFieldAliasing() {
  $this
    ->assertSame($this->resourceTypeRepository
    ->getByTypeName('node--article')
    ->getPublicName('uid'), 'uid');
  $this
    ->assertSame($this->resourceTypeRepository
    ->getByTypeName('node--page')
    ->getPublicName('uid'), 'uid');
  $resource_type_field_aliases = [
    'node--article' => [
      'uid' => 'author',
    ],
    'node--page' => [
      'uid' => 'owner',
    ],
  ];
  \Drupal::state()
    ->set('jsonapi_test_resource_type_builder.resource_type_field_aliases', $resource_type_field_aliases);
  Cache::invalidateTags([
    'jsonapi_resource_types',
  ]);
  $this
    ->assertSame($this->resourceTypeRepository
    ->getByTypeName('node--article')
    ->getPublicName('uid'), 'author');
  $this
    ->assertSame($this->resourceTypeRepository
    ->getByTypeName('node--page')
    ->getPublicName('uid'), 'owner');
}