visitsHelper = $this->prophesize(VisitsStatsHelperInterface::class); $this->orphanVisitTransformer = $this->prophesize(DataTransformerInterface::class); $this->action = new OrphanVisitsAction($this->visitsHelper->reveal(), $this->orphanVisitTransformer->reveal()); } /** @test */ public function requestIsHandled(): void { $visitor = Visitor::emptyInstance(); $visits = [Visit::forInvalidShortUrl($visitor), Visit::forRegularNotFound($visitor)]; $orphanVisits = $this->visitsHelper->orphanVisits(Argument::type(VisitsParams::class))->willReturn( new Paginator(new ArrayAdapter($visits)), ); $visitsAmount = count($visits); $transform = $this->orphanVisitTransformer->transform(Argument::type(Visit::class))->willReturn([]); /** @var JsonResponse $response */ $response = $this->action->handle(ServerRequestFactory::fromGlobals()); $payload = $response->getPayload(); self::assertCount($visitsAmount, $payload['visits']['data']); self::assertEquals(200, $response->getStatusCode()); $orphanVisits->shouldHaveBeenCalledOnce(); $transform->shouldHaveBeenCalledTimes($visitsAmount); } }