private function TryPageLoad($currentUser) { $fileId = $this->page->GetFileId(); $referenceNumber = $this->page->GetReferenceNumber(); Log::Debug('Trying to load reservation attachment. FileId: %s, ReferenceNumber %s', $fileId, $referenceNumber); $attachment = $this->reservationRepository->LoadReservationAttachment($fileId); if ($attachment == null) { Log::Error('Error loading resource attachment, attachment not found'); return false; } $reservation = $this->reservationRepository->LoadByReferenceNumber($referenceNumber); if ($reservation == null) { Log::Error('Error loading resource attachment, reservation not found'); return false; } if ($reservation->SeriesId() != $attachment->SeriesId()) { Log::Error('Error loading resource attachment, attachment not associated with reservation'); return false; } if (!$this->permissionService->CanAccessResource(new ReservationResource($reservation->ResourceId()), $currentUser)) { Log::Error('Error loading resource attachment, insufficient permissions'); return false; } return $attachment; }
public function testShowsErrorFileDoesNotBelongToReservation() { $fileId = 110; $resourceId = 1909; $referenceNumber = 'rn'; $seriesId = 1; $fileSeriesId = 2; $builder = new ExistingReservationSeriesBuilder(); $builder->WithId($seriesId); $builder->WithPrimaryResource(new FakeBookableResource($resourceId)); $reservationSeries = $builder->Build(); $reservationAttachment = new FakeReservationAttachment($fileId); $reservationAttachment->SetSeriesId($fileSeriesId); $this->page->expects($this->once())->method('GetFileId')->will($this->returnValue($fileId)); $this->page->expects($this->once())->method('GetReferenceNumber')->will($this->returnValue($referenceNumber)); $this->reservationRepository->expects($this->once())->method('LoadReservationAttachment')->with($this->equalTo($fileId))->will($this->returnValue($reservationAttachment)); $this->reservationRepository->expects($this->once())->method('LoadByReferenceNumber')->with($this->equalTo($referenceNumber))->will($this->returnValue($reservationSeries)); $this->page->expects($this->once())->method('ShowError'); $this->presenter->PageLoad($this->fakeUser); }