You are here

public function EntityUnitTest::testLabel in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testLabel()
  2. 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\Entity

Code

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());
}