Пример #1
0
 /**
  * Checks if event is in fired array
  *
  * @param mixed $other Constraint check
  * @return bool
  */
 public function matches($other)
 {
     $firedEvents = [];
     $list = $this->_eventManager->getEventList();
     $totalEvents = count($list);
     for ($e = 0; $e < $totalEvents; $e++) {
         $firedEvents[] = $list[$e];
     }
     $eventGroup = collection($firedEvents)->groupBy(function (Event $event) {
         return $event->name();
     })->toArray();
     if (!array_key_exists($other, $eventGroup)) {
         return false;
     }
     $events = $eventGroup[$other];
     if (count($events) > 1) {
         throw new PHPUnit_Framework_AssertionFailedError(sprintf('Event "%s" was fired %d times, cannot make data assertion', $other, count($events)));
     }
     $event = $events[0];
     if (array_key_exists($this->_dataKey, $event->data) === false) {
         return false;
     }
     return $event->data[$this->_dataKey] === $this->_dataValue;
 }
Пример #2
0
 /**
  * Test getting a list of dispatched events from the manager.
  *
  * @return void
  * @triggers my_event $this
  * @triggers my_second_event $this
  */
 public function testGetDispatchedEvents()
 {
     $eventList = new EventList();
     $event = new Event('my_event', $this);
     $event2 = new Event('my_second_event', $this);
     $manager = new EventManager();
     $manager->setEventList($eventList);
     $manager->dispatch($event);
     $manager->dispatch($event2);
     $result = $manager->getEventList();
     $this->assertInstanceOf('\\Cake\\Event\\EventList', $result);
     $this->assertCount(2, $result);
     $this->assertEquals($result[0], $event);
     $this->assertEquals($result[1], $event2);
     $manager->getEventList()->flush();
     $result = $manager->getEventList();
     $this->assertCount(0, $result);
     $manager->unsetEventList();
     $manager->dispatch($event);
     $manager->dispatch($event2);
     $result = $manager->getEventList();
     $this->assertNull($result);
 }
Пример #3
0
 /**
  * Checks if event is in fired array
  *
  * @param mixed $other Constraint check
  * @return bool
  */
 public function matches($other)
 {
     return $this->_eventManager->getEventList()->hasEvent($other);
 }