public function EntityResourceTest::testGetRelated in JSON:API 8
Same name and namespace in other branches
- 8.2 tests/src/Kernel/Controller/EntityResourceTest.php \Drupal\Tests\jsonapi\Kernel\Controller\EntityResourceTest::testGetRelated()
@covers ::getRelated
File
- tests/
src/ Kernel/ Controller/ EntityResourceTest.php, line 350
Class
- EntityResourceTest
- @coversDefaultClass \Drupal\jsonapi\Controller\EntityResource @group jsonapi @group legacy
Namespace
Drupal\Tests\jsonapi\Kernel\ControllerCode
public function testGetRelated() {
// to-one relationship.
$entity_resource = $this
->buildEntityResource('node', 'article', [
'uid' => [
new ResourceType('user', 'user', NULL),
],
'roles' => [
new ResourceType('user_role', 'user_role', NULL),
],
'field_relationships' => [
new ResourceType('node', 'article', NULL),
],
]);
$response = $entity_resource
->getRelated($this->node, 'uid', new Request());
$this
->assertInstanceOf(JsonApiDocumentTopLevel::class, $response
->getResponseData());
$this
->assertInstanceOf(User::class, $response
->getResponseData()
->getData());
$this
->assertEquals(1, $response
->getResponseData()
->getData()
->id());
$this
->assertEquals([
'node:1',
'user:1',
], $response
->getCacheableMetadata()
->getCacheTags());
// to-many relationship.
$response = $entity_resource
->getRelated($this->node4, 'field_relationships', new Request());
$this
->assertInstanceOf(JsonApiDocumentTopLevel::class, $response
->getResponseData());
$this
->assertInstanceOf(EntityCollection::class, $response
->getResponseData()
->getData());
$this
->assertEquals([
'node:1',
'node:2',
'node:3',
'node:4',
], $response
->getCacheableMetadata()
->getCacheTags());
}