createBookingDto(); $bookingSessionService = $this->createMock(BookingSessionService::class); $bookingSessionService->expects($this->once()) ->method('getBookingDto') ->with($request, BookingDto::MODE_EDIT) ->willReturn($bookingDto); $service = $this->createService(bookingSessionService: $bookingSessionService); $this->assertSame($bookingDto, $service->loadBookingDto($request)); } public function testIsParticipantCanceledUsesBookingStatus(): void { $service = $this->createService(); $booking = new Booking(); $booking->participantsStatus = [0 => 'S', 1 => 'A']; $this->assertTrue($service->isParticipantCanceled($booking, 0)); $this->assertFalse($service->isParticipantCanceled($booking, 1)); } public function testGetMutableDataDelegatesToTravelDataService(): void { $mutableData = new BaseData([]); $travelDataService = $this->createMock(TravelDataService::class); $travelDataService->expects($this->once()) ->method('getMutabilityData') ->with(1234) ->willReturn($mutableData); $service = new BookingEditParticipantFormService( $this->createMock(BookingEditDataLoaderService::class), $this->createMock(BookingEditDraftService::class), $this->createMock(BookingSessionService::class), $this->createMock(BookingSummaryDataService::class), $travelDataService, ); $this->assertSame($mutableData, $service->getMutableData(1234)); } private function createService( ?BookingEditDataLoaderService $dataLoader = null, ?BookingEditDraftService $draftService = null, ?BookingSessionService $bookingSessionService = null, ?BookingSummaryDataService $summaryDataService = null, ?TravelDataService $travelDataService = null, ): BookingEditParticipantFormService { return new BookingEditParticipantFormService( $dataLoader ?? $this->createMock(BookingEditDataLoaderService::class), $draftService ?? $this->createMock(BookingEditDraftService::class), $bookingSessionService ?? $this->createMock(BookingSessionService::class), $summaryDataService ?? $this->createMock(BookingSummaryDataService::class), $travelDataService ?? $this->createMock(TravelDataService::class), ); } private function createBookingDto(): BookingDto { $travel = new Travel(); $travel->dateFrom = new \DateTimeImmutable('2030-01-01'); $travel->dateTo = new \DateTimeImmutable('2030-01-06'); $bookingDto = new BookingDto($travel, 157047); $bookingDto->booking = new Booking(); return $bookingDto; } }