urlShortener = $this->prophesize(UrlShortener::class); $this->visitTracker = $this->prophesize(VisitsTracker::class); $this->action = new PixelAction( $this->urlShortener->reveal(), $this->visitTracker->reveal(), new AppOptions() ); } /** @test */ public function imageIsReturned() { $shortCode = 'abc123'; $this->urlShortener->shortCodeToUrl($shortCode)->willReturn( new ShortUrl('http://domain.com/foo/bar') )->shouldBeCalledOnce(); $this->visitTracker->track(Argument::cetera())->shouldBeCalledOnce(); $request = (new ServerRequest())->withAttribute('shortCode', $shortCode); $response = $this->action->process($request, TestUtils::createReqHandlerMock()->reveal()); $this->assertInstanceOf(PixelResponse::class, $response); $this->assertEquals(200, $response->getStatusCode()); $this->assertEquals('image/gif', $response->getHeaderLine('content-type')); } }