You are here

public function EntityUnitTest::testLoad 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::testLoad()

@covers ::load

Tests Entity::load() when called statically on a subclass of Entity.

File

core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php, line 270

Class

EntityUnitTest
@coversDefaultClass \Drupal\Core\Entity\Entity @group Entity @group Access

Namespace

Drupal\Tests\Core\Entity

Code

public function testLoad() {
  $this
    ->setupTestLoad();
  $class_name = get_class($this->entity);
  $entity_type_repository = $this
    ->getMockForAbstractClass(EntityTypeRepositoryInterface::class);
  $entity_type_repository
    ->expects($this
    ->once())
    ->method('getEntityTypeFromClass')
    ->with($class_name)
    ->willReturn($this->entityTypeId);
  $storage = $this
    ->createMock(EntityStorageInterface::class);
  $storage
    ->expects($this
    ->once())
    ->method('load')
    ->with(1)
    ->will($this
    ->returnValue($this->entity));
  $this->entityTypeManager
    ->expects($this
    ->once())
    ->method('getStorage')
    ->with($this->entityTypeId)
    ->will($this
    ->returnValue($storage));
  \Drupal::getContainer()
    ->set('entity_type.repository', $entity_type_repository);

  // Call Entity::load statically and check that it returns the mock entity.
  $this
    ->assertSame($this->entity, $class_name::load(1));
}