/** * 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; }
/** * 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); }
/** * Checks if event is in fired array * * @param mixed $other Constraint check * @return bool */ public function matches($other) { return $this->_eventManager->getEventList()->hasEvent($other); }