/** * @covers Imbo\Resource\Stats::get */ public function testTriggersTheCorrectEvent() { $responseHeaders = $this->getMock('Symfony\\Component\\HttpFoundation\\HeaderBag'); $responseHeaders->expects($this->once())->method('addCacheControlDirective')->with('no-store'); $this->response->headers = $responseHeaders; $this->response->expects($this->once())->method('setMaxAge')->with(0)->will($this->returnSelf()); $this->response->expects($this->once())->method('setPrivate')->will($this->returnSelf()); $this->eventManager->expects($this->once())->method('trigger')->with('db.stats.load'); $this->resource->get($this->event); }
/** * @see https://github.com/imbo/imbo/issues/251 * * This test is best run with "In the Ghetto" blasting on the stereo */ public function testHasHigherPriorityThanTheStatsResource() { $statsAccess = new StatsAccess(); $statsResource = new StatsResource(); $eventManager = new EventManager(); $eventManager->addEventHandler('statsAccess', $statsAccess); $eventManager->addCallbacks('statsAccess', StatsAccess::getSubscribedEvents()); $eventManager->addEventHandler('statsResource', $statsResource); $eventManager->addCallbacks('statsResource', StatsResource::getSubscribedEvents()); $callbacks = new ReflectionProperty($eventManager, 'callbacks'); $callbacks->setAccessible(true); $handlersForGet = $callbacks->getValue($eventManager)['stats.get']; $handlersForHead = $callbacks->getValue($eventManager)['stats.head']; $this->assertSame($statsAccess, $eventManager->getHandlerInstance($handlersForGet->extract()['handler'])); $this->assertSame($statsResource, $eventManager->getHandlerInstance($handlersForGet->extract()['handler'])); $this->assertSame($statsAccess, $eventManager->getHandlerInstance($handlersForHead->extract()['handler'])); $this->assertSame($statsResource, $eventManager->getHandlerInstance($handlersForHead->extract()['handler'])); }