public function testWhenReservationIsNotFound()
 {
     $reservation = NullReservationView::Instance();
     $referenceNumber = '12323';
     $this->reservationViewRepository->expects($this->once())->method('GetReservationForEditing')->with($this->equalTo($referenceNumber))->will($this->returnValue($reservation));
     $this->service->GetReservation($referenceNumber);
     $expectedResponse = RestResponse::NotFound();
     $this->assertEquals($expectedResponse, $this->server->_LastResponse);
 }
 public function GetReservationForEditing($referenceNumber)
 {
     $reservationView = NullReservationView::Instance();
     $getReservation = new GetReservationForEditingCommand($referenceNumber);
     $result = ServiceLocator::GetDatabase()->Query($getReservation);
     while ($row = $result->GetRow()) {
         $reservationView = new ReservationView();
         $reservationView->Description = $row[ColumnNames::RESERVATION_DESCRIPTION];
         $reservationView->EndDate = Date::FromDatabase($row[ColumnNames::RESERVATION_END]);
         $reservationView->OwnerId = $row[ColumnNames::USER_ID];
         $reservationView->ResourceId = $row[ColumnNames::RESOURCE_ID];
         $reservationView->ResourceName = $row[ColumnNames::RESOURCE_NAME];
         $reservationView->ReferenceNumber = $row[ColumnNames::REFERENCE_NUMBER];
         $reservationView->ReservationId = $row[ColumnNames::RESERVATION_INSTANCE_ID];
         $reservationView->ScheduleId = $row[ColumnNames::SCHEDULE_ID];
         $reservationView->StartDate = Date::FromDatabase($row[ColumnNames::RESERVATION_START]);
         $reservationView->Title = $row[ColumnNames::RESERVATION_TITLE];
         $reservationView->SeriesId = $row[ColumnNames::SERIES_ID];
         $reservationView->OwnerFirstName = $row[ColumnNames::FIRST_NAME];
         $reservationView->OwnerLastName = $row[ColumnNames::LAST_NAME];
         $reservationView->OwnerEmailAddress = $row[ColumnNames::EMAIL];
         $reservationView->StatusId = $row[ColumnNames::RESERVATION_STATUS];
         $reservationView->DateCreated = Date::FromDatabase($row[ColumnNames::RESERVATION_CREATED]);
         $reservationView->DateModified = Date::FromDatabase($row[ColumnNames::RESERVATION_MODIFIED]);
         $repeatConfig = RepeatConfiguration::Create($row[ColumnNames::REPEAT_TYPE], $row[ColumnNames::REPEAT_OPTIONS]);
         $reservationView->RepeatType = $repeatConfig->Type;
         $reservationView->RepeatInterval = $repeatConfig->Interval;
         $reservationView->RepeatWeekdays = $repeatConfig->Weekdays;
         $reservationView->RepeatMonthlyType = $repeatConfig->MonthlyType;
         $reservationView->RepeatTerminationDate = $repeatConfig->TerminationDate;
         $reservationView->AllowParticipation = $row[ColumnNames::RESERVATION_ALLOW_PARTICIPATION];
         $this->SetResources($reservationView);
         $this->SetParticipants($reservationView);
         $this->SetAccessories($reservationView);
         $this->SetAttributes($reservationView);
         $this->SetAttachments($reservationView);
         $this->SetReminders($reservationView);
     }
     return $reservationView;
 }
 public function testReturnsNullObjectIfNothingFound()
 {
     $referenceNumber = "12345";
     $reservationView = $this->repository->GetReservationForEditing($referenceNumber);
     $this->assertEquals(NullReservationView::Instance(), $reservationView);
 }