From cf5ad5feba35bfe8f9ba3082c516769d515208c0 Mon Sep 17 00:00:00 2001 From: Lee Rowlands <lee.rowlands@previousnext.com.au> Date: Thu, 22 Aug 2019 12:26:30 +1000 Subject: [PATCH] Issue #3075831 by mr.baileys: Failing assertions when bundle ID contains only numbers --- .../jsonapi/src/ResourceType/ResourceTypeRepository.php | 2 +- .../Kernel/ResourceType/ResourceTypeRepositoryTest.php | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/modules/jsonapi/src/ResourceType/ResourceTypeRepository.php b/core/modules/jsonapi/src/ResourceType/ResourceTypeRepository.php index fea0e6aa3887..48563444f53e 100644 --- a/core/modules/jsonapi/src/ResourceType/ResourceTypeRepository.php +++ b/core/modules/jsonapi/src/ResourceType/ResourceTypeRepository.php @@ -111,7 +111,7 @@ public function all() { foreach ($this->entityTypeManager->getDefinitions() as $entity_type) { $bundles = array_keys($this->entityTypeBundleInfo->getBundleInfo($entity_type->id())); $resource_types = array_reduce($bundles, function ($resource_types, $bundle) use ($entity_type) { - $resource_type = $this->createResourceType($entity_type, $bundle); + $resource_type = $this->createResourceType($entity_type, (string) $bundle); return array_merge($resource_types, [ $resource_type->getTypeName() => $resource_type, ]); diff --git a/core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php b/core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php index 8f9e6c5ae264..a87ca929dff7 100644 --- a/core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php +++ b/core/modules/jsonapi/tests/src/Kernel/ResourceType/ResourceTypeRepositoryTest.php @@ -50,6 +50,9 @@ protected function setUp() { NodeType::create([ 'type' => 'page', ])->save(); + NodeType::create([ + 'type' => '42', + ])->save(); $this->resourceTypeRepository = $this->container->get('jsonapi.resource_type.repository'); } @@ -91,6 +94,7 @@ public function testGet($entity_type_id, $bundle, $entity_class) { public function getProvider() { return [ ['node', 'article', 'Drupal\node\Entity\Node'], + ['node', '42', 'Drupal\node\Entity\Node'], ['node_type', 'node_type', 'Drupal\node\Entity\NodeType'], ['menu', 'menu', 'Drupal\system\Entity\Menu'], ]; @@ -102,9 +106,9 @@ public function getProvider() { public function testCaching() { $this->assertEmpty($this->resourceTypeRepository->get('node', 'article')->getRelatableResourceTypesByField('field_relationship')); $this->createEntityReferenceField('node', 'article', 'field_relationship', 'Related entity', 'node'); - $this->assertCount(2, $this->resourceTypeRepository->get('node', 'article')->getRelatableResourceTypesByField('field_relationship')); - NodeType::create(['type' => 'camelids'])->save(); $this->assertCount(3, $this->resourceTypeRepository->get('node', 'article')->getRelatableResourceTypesByField('field_relationship')); + NodeType::create(['type' => 'camelids'])->save(); + $this->assertCount(4, $this->resourceTypeRepository->get('node', 'article')->getRelatableResourceTypesByField('field_relationship')); } } -- GitLab