id = 123; $skiPassService->subType = 'SPA'; $skiPassService->mapping = [0, 2]; // Assigned to participants 0 and 2 // Create a non-ski pass service $otherService = new Service(); $otherService->id = 456; $otherService->subType = 'OTHER'; $otherService->mapping = [0]; $booking->additionalServices = [ 123 => $skiPassService, 456 => $otherService, ]; // Test: participant 0 should get the ski pass $result = $booking->getSkiPassForParticipant(0); $this->assertSame($skiPassService, $result); $this->assertEquals(123, $result->id); // Test: participant 1 should get null (no ski pass assigned) $result = $booking->getSkiPassForParticipant(1); $this->assertNull($result); // Test: participant 2 should get the ski pass $result = $booking->getSkiPassForParticipant(2); $this->assertSame($skiPassService, $result); } public function testGetSkiPassForParticipantReturnsNullWhenNoSkiPasses(): void { $booking = new Booking(); // Only non-ski pass services $otherService = new Service(); $otherService->id = 456; $otherService->subType = 'COURSES'; $otherService->mapping = [0]; $booking->additionalServices = [456 => $otherService]; $result = $booking->getSkiPassForParticipant(0); $this->assertNull($result); } public function testGetSkiPassForParticipantReturnsNullWhenNoServices(): void { $booking = new Booking(); $booking->additionalServices = []; $result = $booking->getSkiPassForParticipant(0); $this->assertNull($result); } }