service = $this->prophesize(ShortUrlService::class); $this->action = new ListShortcodesAction($this->service->reveal(), Translator::factory([])); } /** * @test */ public function properListReturnsSuccessResponse() { $page = 3; $this->service->listShortUrls($page)->willReturn(new Paginator(new ArrayAdapter())) ->shouldBeCalledTimes(1); $response = $this->action->__invoke( ServerRequestFactory::fromGlobals()->withQueryParams([ 'page' => $page, ]), new Response() ); $this->assertEquals(200, $response->getStatusCode()); } /** * @test */ public function anExceptionsReturnsErrorResponse() { $page = 3; $this->service->listShortUrls($page)->willThrow(\Exception::class) ->shouldBeCalledTimes(1); $response = $this->action->__invoke( ServerRequestFactory::fromGlobals()->withQueryParams([ 'page' => $page, ]), new Response() ); $this->assertEquals(500, $response->getStatusCode()); } }