/** * Tests the functionality of test actions. */ public function testOperations() { // Test that actions can be discovered. $definitions = $this->actionManager->getDefinitions(); $this->assertTrue(count($definitions) > 1, 'Action definitions are found.'); $this->assertTrue(!empty($definitions['action_test_no_type']), 'The test action is among the definitions found.'); $definition = $this->actionManager->getDefinition('action_test_no_type'); $this->assertTrue(!empty($definition), 'The test action definition is found.'); $definitions = $this->actionManager->getDefinitionsByType('user'); $this->assertTrue(empty($definitions['action_test_no_type']), 'An action with no type is not found.'); // Create an instance of the 'save entity' action. $action = $this->actionManager->createInstance('action_test_save_entity'); $this->assertTrue($action instanceof ActionInterface, 'The action implements the correct interface.'); // Create a new unsaved user. $name = $this->randomMachineName(); $user_storage = $this->container->get('entity.manager')->getStorage('user'); $account = $user_storage->create(array('name' => $name, 'bundle' => 'user')); $loaded_accounts = $user_storage->loadMultiple(); $this->assertEqual(count($loaded_accounts), 0); // Execute the 'save entity' action. $action->execute($account); $loaded_accounts = $user_storage->loadMultiple(); $this->assertEqual(count($loaded_accounts), 1); $account = reset($loaded_accounts); $this->assertEqual($name, $account->label()); }
/** * Constructs a new MessageActionForm object. * * @param \Drupal\Core\Action\ActionManager $action_manager * The action manager. * @param \Drupal\Core\Entity\EntityManagerInterface $entity_manager * The entity manager. * @param \Drupal\rng\EventManagerInterface $event_manager * The RNG event manager. */ public function __construct(ActionManager $action_manager, EntityManagerInterface $entity_manager, EventManagerInterface $event_manager) { $this->actionPlugin = $action_manager->createInstance('rng_courier_message'); $this->entityManager = $entity_manager; $this->eventManager = $event_manager; }