Mercurial > hg > isophonics-drupal-site
comparison core/modules/field/tests/src/Kernel/ShapeItemTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:4c8ae668cc8c |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\Tests\field\Kernel; | |
4 | |
5 use Drupal\Core\Field\FieldItemInterface; | |
6 use Drupal\Core\Field\FieldItemListInterface; | |
7 use Drupal\entity_test\Entity\EntityTest; | |
8 use Drupal\field\Entity\FieldConfig; | |
9 use Drupal\field\Entity\FieldStorageConfig; | |
10 | |
11 /** | |
12 * Tests the new entity API for the shape field type. | |
13 * | |
14 * @group field | |
15 */ | |
16 class ShapeItemTest extends FieldKernelTestBase { | |
17 | |
18 /** | |
19 * Modules to enable. | |
20 * | |
21 * @var array | |
22 */ | |
23 public static $modules = ['field_test']; | |
24 | |
25 /** | |
26 * The name of the field to use in this test. | |
27 * | |
28 * @var string | |
29 */ | |
30 protected $fieldName = 'field_shape'; | |
31 | |
32 protected function setUp() { | |
33 parent::setUp(); | |
34 | |
35 // Create a 'shape' field and storage for validation. | |
36 FieldStorageConfig::create([ | |
37 'field_name' => $this->fieldName, | |
38 'entity_type' => 'entity_test', | |
39 'type' => 'shape', | |
40 ])->save(); | |
41 FieldConfig::create([ | |
42 'entity_type' => 'entity_test', | |
43 'field_name' => $this->fieldName, | |
44 'bundle' => 'entity_test', | |
45 ])->save(); | |
46 } | |
47 | |
48 /** | |
49 * Tests using entity fields of the field field type. | |
50 */ | |
51 public function testShapeItem() { | |
52 // Verify entity creation. | |
53 $entity = EntityTest::create(); | |
54 $shape = 'cube'; | |
55 $color = 'blue'; | |
56 $entity->{$this->fieldName}->shape = $shape; | |
57 $entity->{$this->fieldName}->color = $color; | |
58 $entity->name->value = $this->randomMachineName(); | |
59 $entity->save(); | |
60 | |
61 // Verify entity has been created properly. | |
62 $id = $entity->id(); | |
63 $entity = EntityTest::load($id); | |
64 $this->assertTrue($entity->{$this->fieldName} instanceof FieldItemListInterface, 'Field implements interface.'); | |
65 $this->assertTrue($entity->{$this->fieldName}[0] instanceof FieldItemInterface, 'Field item implements interface.'); | |
66 $this->assertEqual($entity->{$this->fieldName}->shape, $shape); | |
67 $this->assertEqual($entity->{$this->fieldName}->color, $color); | |
68 $this->assertEqual($entity->{$this->fieldName}[0]->shape, $shape); | |
69 $this->assertEqual($entity->{$this->fieldName}[0]->color, $color); | |
70 | |
71 // Verify changing the field value. | |
72 $new_shape = 'circle'; | |
73 $new_color = 'red'; | |
74 $entity->{$this->fieldName}->shape = $new_shape; | |
75 $entity->{$this->fieldName}->color = $new_color; | |
76 $this->assertEqual($entity->{$this->fieldName}->shape, $new_shape); | |
77 $this->assertEqual($entity->{$this->fieldName}->color, $new_color); | |
78 | |
79 // Read changed entity and assert changed values. | |
80 $entity->save(); | |
81 $entity = EntityTest::load($id); | |
82 $this->assertEqual($entity->{$this->fieldName}->shape, $new_shape); | |
83 $this->assertEqual($entity->{$this->fieldName}->color, $new_color); | |
84 } | |
85 | |
86 } |