public function testDispatchDelegates()
    {
        $event = new Event();

        $this->innerDispatcher->expects($this->once())
            ->method('dispatch')
            ->with('event', $event)
            ->will($this->returnValue('result'));

        $this->assertSame('result', $this->dispatcher->dispatch('event', $event));
    }
Ejemplo n.º 2
0
 /**
  * @param string $eventName
  * @param Event|null $event
  * @return Event|null
  */
 public function dispatch($eventName, Event $event = null)
 {
     parent::dispatch($eventName, $event);
     if ($event instanceof FormAwareInterface) {
         parent::dispatch($eventName . '.' . $event->getForm()->getName(), $event);
     }
     return $event;
 }
Ejemplo n.º 3
0
 /**
  * @param string $eventName
  * @param GridEventInterface|GridConfigurationEventInterface|Event $event
  *
  * @return Event
  * @throws InvalidArgumentException
  */
 public function dispatch($eventName, Event $event = null)
 {
     /** @var DatagridConfiguration $config */
     if ($event instanceof GridEventInterface) {
         $config = $event->getDatagrid()->getConfig();
     } elseif ($event instanceof GridConfigurationEventInterface) {
         $config = $event->getConfig();
     } else {
         throw new InvalidArgumentException('Unexpected event type. Expected instance of GridEventInterface or GridConfigurationEventInterface');
     }
     // get all parents
     $invokedGrids = $config->offsetGetOr(SystemAwareResolver::KEY_EXTENDED_FROM, []);
     $invokedGrids[] = $config->getName();
     parent::dispatch($eventName, $event);
     /*
      * Dispatch named events in reverse order from parent to child
      * e.g. parent1 -> parent2 -> target grid
      */
     foreach ($invokedGrids as $grid) {
         parent::dispatch($eventName . '.' . $grid, $event);
     }
     return $event;
 }