834f04cc27bebb1bbd2c38f00a18de863f106064
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Entity / EntityKeysTest.php
1 <?php
2
3 namespace Drupal\KernelTests\Core\Entity;
4
5 use Drupal\Core\Field\BaseFieldDefinition;
6 use Drupal\entity_test\Entity\EntityTest;
7
8 /**
9  * Test the behavior of entity keys.
10  *
11  * @group entity
12  */
13 class EntityKeysTest extends EntityKernelTestBase {
14
15   /**
16    * Test the cache when multiple keys reference a single field.
17    *
18    * @dataProvider multipleKeysCacheTestCases
19    */
20   public function testMultipleKeysCache($translatable) {
21     $this->state->set('entity_test.additional_base_field_definitions', [
22       'test_field' => BaseFieldDefinition::create('string')->setTranslatable($translatable),
23     ]);
24     $this->state->set('entity_test.entity_keys', [
25       'key_1' => 'test_field',
26       'key_2' => 'test_field',
27     ]);
28     drupal_flush_all_caches();
29     $this->installEntitySchema('entity_test');
30
31     $entity = EntityTest::create([]);
32
33     $entity->set('test_field', 'foo');
34     $this->assertEquals('foo', $entity->getEntityKey('key_1'));
35     $this->assertEquals('foo', $entity->getEntityKey('key_2'));
36
37     $entity->set('test_field', 'bar');
38     $this->assertEquals('bar', $entity->getEntityKey('key_1'));
39     $this->assertEquals('bar', $entity->getEntityKey('key_2'));
40   }
41
42   /**
43    * Data provider for ::testMultipleKeysCache.
44    */
45   public function multipleKeysCacheTestCases() {
46     return [
47       'translatable Entity Key' => [
48         TRUE,
49       ],
50       'Non-translatable entity key' => [
51         FALSE,
52       ],
53     ];
54   }
55
56 }