public function testPublishesEventsWhenHandlingRequest() { $config = $this->getMockBuilder(ServesIceHawkConfig::class)->getMockForAbstractClass(); $requestInfo = new RequestInfo(['REQUEST_METHOD' => 'GET', 'REQUEST_URI' => '/domain/valid_read_test']); $initEvent = new IceHawkWasInitializedEvent($requestInfo); $getRequest = new GetRequest($requestInfo, []); $handlingEvent = new HandlingRequestEvent($getRequest); $handledEvent = new RequestWasHandledEvent($getRequest); $eventListener = $this->getMockBuilder(ListensToEvents::class)->setMethods(['acceptsEvent', 'notify'])->getMockForAbstractClass(); $eventListener->expects($this->exactly(3))->method('acceptsEvent')->withConsecutive([$this->equalTo($initEvent)], [$this->equalTo($handlingEvent)], [$this->equalTo($handledEvent)])->willReturn(true); $eventListener->expects($this->exactly(3))->method('notify')->withConsecutive([$this->equalTo($initEvent)], [$this->equalTo($handlingEvent)], [$this->equalTo($handledEvent)]); $config->expects($this->once())->method('getDomainNamespace')->willReturn('Fortuneglobe\\IceHawk\\Tests\\Unit\\Fixtures'); $config->expects($this->once())->method('getRequestInfo')->willReturn($requestInfo); $config->expects($this->once())->method('getUriRewriter')->willReturn(new UriRewriter()); $config->expects($this->once())->method('getUriResolver')->willReturn(new UriResolver()); $config->expects($this->once())->method('getEventListeners')->willReturn([$eventListener]); $delegate = new IceHawkDelegate(); $iceHawk = new IceHawk($config, $delegate); $iceHawk->init(); $iceHawk->handleRequest(); }
<?php /** * Readis * * @license MIT * @author hollodotme * @link https://github.com/hollodotme/readis */ namespace hollodotme\Readis; use Fortuneglobe\IceHawk\IceHawk; use hollodotme\Readis\Configs\IceHawkConfig; use hollodotme\Readis\Configs\IceHawkDelegate; require __DIR__ . '/../vendor/autoload.php'; $iceHawk = new IceHawk(new IceHawkConfig(), new IceHawkDelegate()); $iceHawk->init(); $iceHawk->handleRequest();