jsonapi-8.x-2.x-dev/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php
tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php
<?php namespace Drupal\Tests\jsonapi\Kernel\ResourceType; use Drupal\jsonapi\ResourceType\ResourceType; use Drupal\KernelTests\KernelTestBase; use Drupal\node\Entity\NodeType; /** * @coversDefaultClass \Drupal\jsonapi\ResourceType\ResourceTypeRepository * @group jsonapi * @group legacy * * @internal */ class ResourceTypeRepositoryTest extends KernelTestBase { /** * {@inheritdoc} */ public static $modules = [ 'node', 'jsonapi', 'serialization', 'system', 'user', ]; /** * The JSON:API resource type repository under test. * * @var \Drupal\jsonapi\ResourceType\ResourceTypeRepository */ protected $resourceTypeRepository; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); // Add the entity schemas. $this->installEntitySchema('node'); $this->installEntitySchema('user'); // Add the additional table schemas. $this->installSchema('system', ['sequences']); $this->installSchema('node', ['node_access']); $this->installSchema('user', ['users_data']); NodeType::create([ 'type' => 'article', ])->save(); NodeType::create([ 'type' => 'page', ])->save(); $this->resourceTypeRepository = $this->container->get('jsonapi.resource_type.repository'); } /** * @covers ::all */ public function testAll() { // Make sure that there are resources being created. $all = $this->resourceTypeRepository->all(); $this->assertNotEmpty($all); array_walk($all, function (ResourceType $resource_type) { $this->assertNotEmpty($resource_type->getDeserializationTargetClass()); $this->assertNotEmpty($resource_type->getEntityTypeId()); $this->assertNotEmpty($resource_type->getTypeName()); }); } /** * @covers ::get * @dataProvider getProvider */ public function testGet($entity_type_id, $bundle, $entity_class) { // Make sure that there are resources being created. $resource_type = $this->resourceTypeRepository->get($entity_type_id, $bundle); $this->assertInstanceOf(ResourceType::class, $resource_type); $this->assertSame($entity_class, $resource_type->getDeserializationTargetClass()); $this->assertSame($entity_type_id, $resource_type->getEntityTypeId()); $this->assertSame($bundle, $resource_type->getBundle()); $this->assertSame($entity_type_id . '--' . $bundle, $resource_type->getTypeName()); } /** * Data provider for testGet. * * @returns array * The data for the test method. */ public function getProvider() { return [ ['node', 'article', 'Drupal\node\Entity\Node'], ['node_type', 'node_type', 'Drupal\node\Entity\NodeType'], ['menu', 'menu', 'Drupal\system\Entity\Menu'], ]; } }