From b5947d1642f0aa32cf4ba6241a7e7deb244e7115 Mon Sep 17 00:00:00 2001 From: Alejandro Celaya Date: Fri, 1 May 2020 11:57:46 +0200 Subject: [PATCH] Created more unit tests --- .../Core/test/Visit/VisitsStatsHelperTest.php | 50 +++++++++++++++++++ module/Rest/src/Action/AbstractRestAction.php | 2 +- .../Action/Visit/GlobalVisitsActionTest.php | 39 +++++++++++++++ 3 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 module/Core/test/Visit/VisitsStatsHelperTest.php create mode 100644 module/Rest/test/Action/Visit/GlobalVisitsActionTest.php diff --git a/module/Core/test/Visit/VisitsStatsHelperTest.php b/module/Core/test/Visit/VisitsStatsHelperTest.php new file mode 100644 index 00000000..a4b692d5 --- /dev/null +++ b/module/Core/test/Visit/VisitsStatsHelperTest.php @@ -0,0 +1,50 @@ +em = $this->prophesize(EntityManagerInterface::class); + $this->helper = new VisitsStatsHelper($this->em->reveal()); + } + + /** + * @test + * @dataProvider provideCounts + */ + public function returnsExpectedVisitsStats(int $expectedCount): void + { + $repo = $this->prophesize(VisitRepository::class); + $count = $repo->count([])->willReturn($expectedCount); + $getRepo = $this->em->getRepository(Visit::class)->willReturn($repo->reveal()); + + $stats = $this->helper->getVisitsStats(); + + $this->assertEquals(new VisitsStats($expectedCount), $stats); + $count->shouldHaveBeenCalledOnce(); + $getRepo->shouldHaveBeenCalledOnce(); + } + + public function provideCounts(): iterable + { + return map(range(0, 50, 5), fn (int $value) => [$value]); + } +} diff --git a/module/Rest/src/Action/AbstractRestAction.php b/module/Rest/src/Action/AbstractRestAction.php index 826290b7..589e2d0e 100644 --- a/module/Rest/src/Action/AbstractRestAction.php +++ b/module/Rest/src/Action/AbstractRestAction.php @@ -21,7 +21,7 @@ abstract class AbstractRestAction implements RequestHandlerInterface, RequestMet public function __construct(?LoggerInterface $logger = null) { - $this->logger = $logger ?: new NullLogger(); + $this->logger = $logger ?? new NullLogger(); } public static function getRouteDef(array $prevMiddleware = [], array $postMiddleware = []): array diff --git a/module/Rest/test/Action/Visit/GlobalVisitsActionTest.php b/module/Rest/test/Action/Visit/GlobalVisitsActionTest.php new file mode 100644 index 00000000..7e1dec06 --- /dev/null +++ b/module/Rest/test/Action/Visit/GlobalVisitsActionTest.php @@ -0,0 +1,39 @@ +helper = $this->prophesize(VisitsStatsHelperInterface::class); + $this->action = new GlobalVisitsAction($this->helper->reveal()); + } + + /** @test */ + public function statsAreReturnedFromHelper(): void + { + $stats = new VisitsStats(5); + $getStats = $this->helper->getVisitsStats()->willReturn($stats); + + /** @var JsonResponse $resp */ + $resp = $this->action->handle(ServerRequestFactory::fromGlobals()); + $payload = $resp->getPayload(); + + $this->assertEquals($payload, ['visits' => $stats]); + $getStats->shouldHaveBeenCalledOnce(); + } +}