BaseFieldOverrideTest.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace Drupal\KernelTests\Core\Field\Entity;
  3. use Drupal\Core\Field\BaseFieldDefinition;
  4. use Drupal\Core\Field\Entity\BaseFieldOverride;
  5. use Drupal\Core\Field\FieldItemList;
  6. use Drupal\KernelTests\KernelTestBase;
  7. /**
  8. * @coversDefaultClass \Drupal\Core\Field\Entity\BaseFieldOverride
  9. * @group Field
  10. */
  11. class BaseFieldOverrideTest extends KernelTestBase {
  12. /**
  13. * Modules to install.
  14. *
  15. * @var array
  16. */
  17. public static $modules = ['system'];
  18. /**
  19. * {@inheritdoc}
  20. */
  21. protected function setUp() {
  22. parent::setUp();
  23. $this->installEntitySchema('base_field_override');
  24. }
  25. /**
  26. * @covers ::getClass
  27. *
  28. * @dataProvider getClassTestCases
  29. */
  30. public function testGetClass($field_type, $base_field_class, $expected_override_class) {
  31. $base_field = BaseFieldDefinition::create($field_type)
  32. ->setName('Test Field')
  33. ->setTargetEntityTypeId('entity_test');
  34. if ($base_field_class) {
  35. $base_field->setClass($base_field_class);
  36. }
  37. $override = BaseFieldOverride::createFromBaseFieldDefinition($base_field, 'test_bundle');
  38. $this->assertEquals($expected_override_class, ltrim($override->getClass(), '\\'));
  39. }
  40. /**
  41. * Test cases for ::testGetClass.
  42. */
  43. public function getClassTestCases() {
  44. return [
  45. 'String (default class)' => [
  46. 'string',
  47. FALSE,
  48. FieldItemList::class,
  49. ],
  50. 'String (overriden class)' => [
  51. 'string',
  52. static::class,
  53. static::class,
  54. ],
  55. ];
  56. }
  57. }