/** * Dispatch event * * Calls all observer callbacks registered for this event * and multiple observers matching event name pattern * * @param string $eventName * @param array $data * @return void */ public function dispatch($eventName, array $data = array()) { \Magento\Framework\Profiler::start('EVENT:' . $eventName, array('group' => 'EVENT', 'name' => $eventName)); foreach ($this->_eventConfig->getObservers($eventName) as $observerConfig) { $event = new \Magento\Framework\Event($data); $event->setName($eventName); $wrapper = new Observer(); $wrapper->setData(array_merge(array('event' => $event), $data)); \Magento\Framework\Profiler::start('OBSERVER:' . $observerConfig['name']); $this->_invoker->dispatch($observerConfig, $wrapper); \Magento\Framework\Profiler::stop('OBSERVER:' . $observerConfig['name']); } \Magento\Framework\Profiler::stop('EVENT:' . $eventName); }
public function dispatch($eventName, array $data = []) { \Magento\Framework\Profiler::start('EVENT:' . $eventName, ['group' => 'EVENT', 'name' => $eventName]); foreach ($this->_eventConfig->getObservers($eventName) as $observerConfig) { $event = new \Magento\Framework\Event($data); $event->setName($eventName); $wrapper = new \Magento\Framework\Event\Observer(); $wrapper->setData(array_merge(['event' => $event], $data)); \Magento\Framework\Profiler::start('OBSERVER:' . $observerConfig['name']); $this->_invoker->dispatch($observerConfig, $wrapper); $observerConfig['method'] = 'execute'; $this->_devHelper->setObserverDetails($observerConfig, $eventName); \Magento\Framework\Profiler::stop('OBSERVER:' . $observerConfig['name']); } \Magento\Framework\Profiler::stop('EVENT:' . $eventName); }
/** * @covers \Magento\Persistent\Observer\SynchronizePersistentOnLoginObserver::execute */ public function testSynchronizePersistentOnLogin() { $event = new \Magento\Framework\Event(); $observer = new \Magento\Framework\Event\Observer(['event' => $event]); /** @var \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository */ $customerRepository = $this->_objectManager->create('Magento\\Customer\\Api\\CustomerRepositoryInterface'); /** @var $customer \Magento\Customer\Api\Data\CustomerInterface */ $customer = $customerRepository->getById(1); $event->setData('customer', $customer); $this->_persistentSession->setRememberMeChecked(true); $this->_model->execute($observer); // check that persistent session has been stored for Customer /** @var \Magento\Persistent\Model\Session $sessionModel */ $sessionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Persistent\\Model\\Session'); $sessionModel->loadByCustomerId(1); $this->assertEquals(1, $sessionModel->getCustomerId()); }
/** * @covers \Magento\Persistent\Model\Observer\Session::synchronizePersistentOnLogin */ public function testSynchronizePersistentOnLogin() { $event = new \Magento\Framework\Event(); $observer = new \Magento\Framework\Event\Observer(array('event' => $event)); /** @var \Magento\Customer\Service\V1\CustomerAccountServiceInterface $customerAccountService */ $customerAccountService = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Customer\\Service\\V1\\CustomerAccountServiceInterface'); /** @var $customer \Magento\Customer\Service\V1\Data\Customer */ $customer = $customerAccountService->getCustomer(1); $event->setData('customer', $customer); $this->_persistentSession->setRememberMeChecked(true); $this->_cookieMock->expects($this->once())->method('set')->with(\Magento\Persistent\Model\Session::COOKIE_NAME, $this->anything(), $this->anything(), $this->_customerSession->getCookiePath()); $this->_model->synchronizePersistentOnLogin($observer); // check that persistent session has been stored for Customer /** @var \Magento\Persistent\Model\Session $sessionModel */ $sessionModel = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Persistent\\Model\\Session'); $sessionModel->loadByCustomerId(1); $this->assertEquals(1, $sessionModel->getCustomerId()); }