function EntityUnitTest::testPostSaveBundle

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testPostSaveBundle()
  2. 8.9.x core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testPostSaveBundle()
  3. 11.x core/tests/Drupal/Tests/Core/Entity/EntityUnitTest.php \Drupal\Tests\Core\Entity\EntityUnitTest::testPostSaveBundle()

@covers ::postSave

File

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

Class

EntityUnitTest
@coversDefaultClass \Drupal\Core\Entity\EntityBase[[api-linebreak]] @group Entity @group Access

Namespace

Drupal\Tests\Core\Entity

Code

public function testPostSaveBundle() : void {
  $this->entityType
    ->expects($this->atLeastOnce())
    ->method('hasKey')
    ->with('bundle')
    ->willReturn(TRUE);
  // This method is internal, so check for errors on calling it only.
  $storage = $this->createMock('\\Drupal\\Core\\Entity\\EntityStorageInterface');
  // A creation should trigger the invalidation of the global list cache tag
  // and the one for the bundle.
  $this->entity
    ->postSave($storage, FALSE);
  $this->cacheTagsInvalidator
    ->invalidateTags([
    $this->entityTypeId . '_list',
    $this->entityTypeId . '_list:' . $this->entity
      ->bundle(),
  ])
    ->shouldHaveBeenCalledOnce();
  // An update should trigger the invalidation of the "list", bundle list and
  // the "own" cache tags.
  $this->entity
    ->postSave($storage, TRUE);
  $this->cacheTagsInvalidator
    ->invalidateTags([
    $this->entityTypeId . '_list',
    $this->entityTypeId . '_list:' . $this->entity
      ->bundle(),
    $this->entityTypeId . ':' . $this->values['id'],
  ])
    ->shouldHaveBeenCalledOnce();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.