SaveActionTest.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. namespace Drupal\KernelTests\Core\Action;
  3. use Drupal\Core\Action\Plugin\Action\Derivative\EntityChangedActionDeriver;
  4. use Drupal\entity_test\Entity\EntityTestMulChanged;
  5. use Drupal\KernelTests\KernelTestBase;
  6. use Drupal\system\Entity\Action;
  7. /**
  8. * @group Action
  9. */
  10. class SaveActionTest extends KernelTestBase {
  11. /**
  12. * {@inheritdoc}
  13. */
  14. public static $modules = ['system', 'entity_test', 'user'];
  15. /**
  16. * {@inheritdoc}
  17. */
  18. protected function setUp() {
  19. parent::setUp();
  20. $this->installEntitySchema('entity_test_mul_changed');
  21. }
  22. /**
  23. * @covers \Drupal\Core\Action\Plugin\Action\Derivative\EntityChangedActionDeriver::getDerivativeDefinitions
  24. */
  25. public function testGetDerivativeDefinitions() {
  26. $deriver = new EntityChangedActionDeriver(\Drupal::entityTypeManager(), \Drupal::translation());
  27. $this->assertArraySubset([
  28. 'entity_test_mul_changed' => [
  29. 'type' => 'entity_test_mul_changed',
  30. 'label' => 'Save test entity - data table',
  31. 'action_label' => 'Save',
  32. ],
  33. ], $deriver->getDerivativeDefinitions([
  34. 'action_label' => 'Save',
  35. ]));
  36. }
  37. /**
  38. * @covers \Drupal\Core\Action\Plugin\Action\SaveAction::execute
  39. */
  40. public function testSaveAction() {
  41. $entity = EntityTestMulChanged::create(['name' => 'test']);
  42. $entity->save();
  43. $saved_time = $entity->getChangedTime();
  44. $action = Action::create([
  45. 'id' => 'entity_save_action',
  46. 'plugin' => 'entity:save_action:entity_test_mul_changed',
  47. ]);
  48. $action->save();
  49. $action->execute([$entity]);
  50. $this->assertNotSame($saved_time, $entity->getChangedTime());
  51. $this->assertArraySubset(['module' => ['entity_test']], $action->getDependencies());
  52. }
  53. }