You are here

public function ConfigEntityMapperTest::testEntityGetterAndSetter in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/config_translation/tests/src/Unit/ConfigEntityMapperTest.php \Drupal\Tests\config_translation\Unit\ConfigEntityMapperTest::testEntityGetterAndSetter()

Tests ConfigEntityMapper::setEntity() and ConfigEntityMapper::getEntity().

File

core/modules/config_translation/tests/src/Unit/ConfigEntityMapperTest.php, line 109

Class

ConfigEntityMapperTest
Tests the functionality provided by the configuration entity mapper.

Namespace

Drupal\Tests\config_translation\Unit

Code

public function testEntityGetterAndSetter() {
  $this->entity
    ->expects($this
    ->once())
    ->method('id')
    ->with()
    ->will($this
    ->returnValue('entity_id'));
  $entity_type = $this
    ->createMock('Drupal\\Core\\Config\\Entity\\ConfigEntityTypeInterface');
  $entity_type
    ->expects($this
    ->any())
    ->method('getConfigPrefix')
    ->will($this
    ->returnValue('config_prefix'));
  $this->entityTypeManager
    ->expects($this
    ->once())
    ->method('getDefinition')
    ->with('configurable_language')
    ->will($this
    ->returnValue($entity_type));

  // No entity is set.
  $this
    ->assertNull($this->configEntityMapper
    ->getEntity());
  $result = $this->configEntityMapper
    ->setEntity($this->entity);
  $this
    ->assertTrue($result);

  // Ensure that the getter provides the entity.
  $this
    ->assertEquals($this->entity, $this->configEntityMapper
    ->getEntity());

  // Ensure that the configuration name was added to the mapper.
  $plugin_definition = $this->configEntityMapper
    ->getPluginDefinition();
  $this
    ->assertContains('config_prefix.entity_id', $plugin_definition['names']);

  // Make sure setEntity() returns FALSE when called a second time.
  $result = $this->configEntityMapper
    ->setEntity($this->entity);
  $this
    ->assertFalse($result);
}