public function EntityUnitTest::testLabel in Drupal 8
Same name and namespace in other branches
- 9 core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testLabel()
- 10 core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testLabel()
@covers ::label @group legacy
File
- core/
tests/ Drupal/ Tests/ Core/ Entity/ EntityUnitTest.php, line 176
Class
- EntityUnitTest
- @coversDefaultClass \Drupal\Core\Entity\Entity @group Entity @group Access
Namespace
Drupal\Tests\Core\EntityCode
public function testLabel() {
$this
->addExpectedDeprecationMessage('Entity type ' . $this->entityTypeId . ' defines a label callback. Support for that is deprecated in drupal:8.0.0 and will be removed in drupal:9.0.0. Override the EntityInterface::label() method instead. See https://www.drupal.org/node/3050794');
// Make a mock with one method that we use as the entity's uri_callback. We
// check that it is called, and that the entity's label is the callback's
// return value.
$callback_label = $this
->randomMachineName();
$property_label = $this
->randomMachineName();
$callback_container = $this
->createMock(get_class());
$callback_container
->expects($this
->once())
->method(__FUNCTION__)
->will($this
->returnValue($callback_label));
$this->entityType
->expects($this
->at(0))
->method('get')
->with('label_callback')
->will($this
->returnValue([
$callback_container,
__FUNCTION__,
]));
$this->entityType
->expects($this
->at(2))
->method('getKey')
->with('label')
->will($this
->returnValue('label'));
// Set a dummy property on the entity under test to test that the label can
// be returned form a property if there is no callback.
$this->entityTypeManager
->expects($this
->at(1))
->method('getDefinition')
->with($this->entityTypeId)
->will($this
->returnValue([
'entity_keys' => [
'label' => 'label',
],
]));
$this->entity->label = $property_label;
$this
->assertSame($callback_label, $this->entity
->label());
$this
->assertSame($property_label, $this->entity
->label());
}