From 803b0608cc71f2c365d8b24633a0ee9a593dc1ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 3 Apr 2026 15:24:56 +0200 Subject: [PATCH] chore: add test --- tests/Service/TravelDataServiceTest.php | 34 +++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/Service/TravelDataServiceTest.php b/tests/Service/TravelDataServiceTest.php index 80a3389..dba858f 100644 --- a/tests/Service/TravelDataServiceTest.php +++ b/tests/Service/TravelDataServiceTest.php @@ -290,6 +290,40 @@ class TravelDataServiceTest extends TestCase ], $result); } + public function testGenerateFilesMapIsMemoizedWithinRequest(): void + { + $dateId = 12345; + $hotelId = 67890; + $mapping = [ + $dateId => [ + 'id' => $dateId, + 'hotels' => [ + $hotelId => ['id' => $hotelId, 'name' => 'Test Hotel'], + ], + ], + ]; + + // Both existsLocally() calls go through generateFilesMap(); the underlying + // loader and snapshot service must each be invoked only once. + $this->travelSnapshotService + ->expects($this->exactly(2)) + ->method('exists') + ->willReturn(false); + + $this->travelLoader + ->expects($this->once()) + ->method('generateFilesMap') + ->willReturn($mapping); + + $this->travelSnapshotService + ->expects($this->once()) + ->method('generateMapping') + ->willReturn([]); + + $this->service->existsLocally($dateId, $hotelId); + $this->service->existsLocally($dateId, $hotelId); + } + public function testGetTravelDataFromLocalPrefersSnapshot(): void { $dateId = 12345;