public function testCanRetrieveInjectedObjects() { $requestInfo = RequestInfo::fromEnv(); $requestInput = new ReadRequestInput([]); $readRequest = new ReadRequest($requestInfo, $requestInput); $event = new HandlingReadRequestEvent($readRequest); $this->assertSame($requestInfo, $event->getRequestInfo()); $this->assertSame($requestInput, $event->getRequestInput()); }
public function testCanRetrieveInjectedObjects() { $requestInfo = RequestInfo::fromEnv(); $requestInput = new WriteRequestInput('', []); $writeRequest = new WriteRequest($requestInfo, $requestInput); $event = new WriteRequestWasHandledEvent($writeRequest); $this->assertSame($requestInfo, $event->getRequestInfo()); $this->assertSame($requestInput, $event->getRequestInput()); }
public function testDefaults() { $config = new IceHawkConfig(); $this->assertEquals([], $config->getEventSubscribers()); $this->assertEquals(RequestInfo::fromEnv(), $config->getRequestInfo()); $this->assertEquals(new FinalReadResponder(), $config->getFinalReadResponder()); $this->assertEquals(new FinalWriteResponder(), $config->getFinalWriteResponder()); $this->assertEquals([], $config->getWriteRoutes()); $this->assertEquals([], $config->getReadRoutes()); }
public function testPublishesEventWhenInitializationIsDone() { $requestInfo = RequestInfo::fromEnv(); $initializingEvent = new InitializingIceHawkEvent($requestInfo); $initializedEvent = new IceHawkWasInitializedEvent($requestInfo); $eventListener = $this->getMockBuilder(SubscribesToEvents::class)->setMethods(['acceptsEvent', 'notify'])->getMockForAbstractClass(); $eventListener->expects($this->at(0))->method('acceptsEvent')->with($this->equalTo($initializingEvent))->willReturn(true); $eventListener->expects($this->at(1))->method('notify')->with($this->equalTo($initializingEvent)); $eventListener->expects($this->at(2))->method('acceptsEvent')->with($this->equalTo($initializedEvent))->willReturn(true); $eventListener->expects($this->at(3))->method('notify')->with($this->equalTo($initializedEvent)); $config = $this->getMockBuilder(ConfiguresIceHawk::class)->getMockForAbstractClass(); $config->expects($this->once())->method('getRequestInfo')->willReturn($requestInfo); $config->expects($this->once())->method('getEventSubscribers')->willReturn([$eventListener]); $iceHawk = new IceHawk($config, new IceHawkDelegate()); $iceHawk->init(); }
public function testCanInstantiateFromEnvUsingGlobalServerVariable() { $requestTimeFloat = microtime(true); $_SERVER['REQUEST_URI'] = '/unit/test'; $_SERVER['REQUEST_METHOD'] = 'POST'; $_SERVER['QUERY_STRING'] = 'unit=test'; $_SERVER['HTTP_USER_AGENT'] = 'phpunit cli'; $_SERVER['HTTP_HOST'] = 'www.icehawk.de'; $_SERVER['HTTP_REFERER'] = 'http://www.example.com'; $_SERVER['HTTP_ACCEPT'] = 'text/html; charset=utf-8'; $_SERVER['SERVER_ADDR'] = '127.0.0.1'; $_SERVER['REMOTE_ADDR'] = '192.168.0.10'; $_SERVER['HTTP_REFERER'] = 'http://www.example.com'; $_SERVER['REQUEST_TIME_FLOAT'] = $requestTimeFloat; $_SERVER['HTTPS'] = 'on'; $_SERVER['PHP_AUTH_USER'] = '******'; $_SERVER['PHP_AUTH_PW'] = 'Test'; $_SERVER['CONTENT_LENGTH'] = '512'; $_SERVER['CONTENT_TYPE'] = 'application/json'; $requestInfo = RequestInfo::fromEnv(); $this->assertInstanceOf(RequestInfo::class, $requestInfo); $this->assertEquals('/unit/test', $requestInfo->getUri()); $this->assertEquals('POST', $requestInfo->getMethod()); $this->assertEquals('unit=test', $requestInfo->getQueryString()); $this->assertEquals('phpunit cli', $requestInfo->getUserAgent()); $this->assertEquals('www.icehawk.de', $requestInfo->getHost()); $this->assertEquals('http://www.example.com', $requestInfo->getReferer()); $this->assertEquals('text/html; charset=utf-8', $requestInfo->getAcceptedContentTypes()); $this->assertEquals('127.0.0.1', $requestInfo->getServerAddress()); $this->assertEquals('192.168.0.10', $requestInfo->getClientAddress()); $this->assertEquals('http://www.example.com', $requestInfo->getReferer()); $this->assertEquals($requestTimeFloat, $requestInfo->getRequestTimeFloat()); $this->assertEquals('Unit', $requestInfo->getAuthUser()); $this->assertEquals('Test', $requestInfo->getAuthPassword()); $this->assertEquals($requestTimeFloat, $requestInfo->getRequestTimeFloat()); $this->assertEquals('512', $requestInfo->getContentLength()); $this->assertEquals('application/json', $requestInfo->getContentType()); $this->assertTrue($requestInfo->isSecure()); }
public function testCanRetrieveInjectedObjects() { $requestInfo = RequestInfo::fromEnv(); $event = new IceHawkWasInitializedEvent($requestInfo); $this->assertSame($requestInfo, $event->getRequestInfo()); }
public function getRequestInfo() : ProvidesRequestInfo { return RequestInfo::fromEnv(); }