You are here

public function DeleteActionTest::testAction in Entity API 8.0

File

tests/src/Kernel/DeleteActionTest.php, line 60
Contains \Drupal\Tests\entity\Kernel\DeleteActionTest.

Class

DeleteActionTest
Tests the delete entity action. @group entity

Namespace

Drupal\Tests\entity\Kernel

Code

public function testAction() {

  /** @var \Drupal\system\ActionConfigEntityInterface $action */
  $action = Action::create([
    'id' => 'enhanced_entity_delete_action',
    'label' => 'Delete enhanced entity',
    'plugin' => 'entity_delete_action:entity_test_enhanced',
  ]);
  $status = $action
    ->save();
  $this
    ->assertEquals(SAVED_NEW, $status);
  $this
    ->assertInstanceOf(DeleteAction::class, $action
    ->getPlugin());
  $entities = [];
  for ($i = 0; $i < 2; $i++) {
    $entity = EnhancedEntity::create([
      'type' => 'default',
    ]);
    $entity
      ->save();
    $entities[$entity
      ->id()] = $entity;
  }
  $action
    ->execute($entities);

  // Confirm that the entity ids and langcodes are now in the tempstore.
  $tempstore = \Drupal::service('user.private_tempstore')
    ->get('entity_delete_multiple_confirm');
  $selection = $tempstore
    ->get($this->user
    ->id());
  $this
    ->assertEquals(array_keys($entities), array_keys($selection));
  $this
    ->assertEquals([
    [
      'en' => 'en',
    ],
    [
      'en' => 'en',
    ],
  ], array_values($selection));
}