public function testSubscription_withFilter()
 {
     /* konflikt:
           soll der filter TRUE oder FALSE zurückgeben um zu filtern?
           
           ich entscheide mich für:
           TRUE wenn das Event getriggered werden soll
           FALSE wenn das Event verworfen werden soll
           
           Eselsbrücke: FALSE ist was negatives und unterbricht damit den flow
        */
     $callback = new CallbackSubscriber($this, 'eventListener');
     $callback->setEventFilter(function ($event) {
         return $event->getData()->filterReturn;
     });
     $myEventName = 'PscCodeEventCallbackSubscriberTest.Happening';
     // wir binden uns an das event
     $this->manager->bind($callback, $myEventName);
     // test mit filterValue, sodass das event nicht weitergegeben wird mit call()
     $this->listenedEvent = NULL;
     $expectedEvent = $this->manager->dispatchEvent($myEventName, array('filterReturn' => FALSE), $this);
     $this->assertEmpty($this->listenedEvent, 'Event ist gesetzt worden');
     // test mit filterValue die nicht gefiltert wird
     $this->listenedEvent = NULL;
     $expectedEvent = $this->manager->dispatchEvent($myEventName, array('filterReturn' => TRUE), $this);
     $this->assertSame($expectedEvent, $this->listenedEvent);
     // dispatch mit filter zurückgesetzt
     $callback->setEventFilter(NULL);
     $expectedEvent = $this->manager->dispatchEvent($myEventName, array('filterReturn' => FALSE), $this);
     $this->assertSame($expectedEvent, $this->listenedEvent);
 }
Example #2
0
 public function subscribe(ComponentsCreaterListener $listener)
 {
     $this->getManager()->bind(CallbackSubscriber::create($listener, 'onComponentCreated')->setArgumentsMapper(function ($event) {
         $d = $event->getData();
         return array($d->component, $d->creater, $event);
     }), self::EVENT_COMPONENT_CREATED);
 }