Ejemplo n.º 1
0
 /**
  * @param array|Schedule[] $schedules
  * @return Schedule
  */
 private function GetDefaultSchedule($schedules)
 {
     $default = null;
     $scheduleId = $this->page->GetScheduleId();
     /** @var $schedule Schedule */
     foreach ($schedules as $schedule) {
         if (!empty($scheduleId) && $schedule->GetId() == $scheduleId) {
             return $schedule;
         }
         if ($schedule->GetIsDefault()) {
             $default = $schedule;
         }
     }
     return $default;
 }
 public function testBindsEmptyCalendarToPageWhenNoReservationsAreFound()
 {
     $userId = 10;
     $this->fakeUser->UserId = $userId;
     $userTimezone = "America/New_York";
     $calendarType = CalendarTypes::Month;
     $requestedDay = 4;
     $requestedMonth = 3;
     $requestedYear = 2011;
     $month = new CalendarMonth($requestedMonth, $requestedYear, $userTimezone);
     $reservations = array();
     $showInaccessible = true;
     $this->fakeConfig->SetSectionKey(ConfigSection::SCHEDULE, ConfigKeys::SCHEDULE_SHOW_INACCESSIBLE_RESOURCES, 'true');
     $resourceId = 1;
     $resourceName = 'rn';
     $defaultScheduleId = 12;
     $r1 = new FakeBookableResource(1, 'dude1');
     $r2 = new FakeBookableResource($resourceId, $resourceName);
     $resources = array($r1, $r2);
     $resourceGroupTree = new ResourceGroupTree();
     $schedules = array(new Schedule(1, null, false, 2, null), new Schedule($defaultScheduleId, null, true, 3, null));
     $this->page->expects($this->atLeastOnce())->method('GetScheduleId')->will($this->returnValue(null));
     $this->page->expects($this->atLeastOnce())->method('GetResourceId')->will($this->returnValue(null));
     $this->repository->expects($this->once())->method('GetReservationList')->with($this->equalTo($month->FirstDay()), $this->equalTo($month->LastDay()->AddDays(1)), $this->equalTo($userId), $this->equalTo(ReservationUserLevel::ALL), $this->isNull(), $this->isNull())->will($this->returnValue($reservations));
     $this->page->expects($this->once())->method('GetCalendarType')->will($this->returnValue($calendarType));
     $this->page->expects($this->once())->method('GetDay')->will($this->returnValue($requestedDay));
     $this->page->expects($this->once())->method('GetMonth')->will($this->returnValue($requestedMonth));
     $this->page->expects($this->once())->method('GetYear')->will($this->returnValue($requestedYear));
     $this->calendarFactory->expects($this->once())->method('Create')->with($this->equalTo($calendarType), $this->equalTo($requestedYear), $this->equalTo($requestedMonth), $this->equalTo($requestedDay), $this->equalTo($userTimezone))->will($this->returnValue($month));
     $this->page->expects($this->once())->method('BindCalendar')->with($this->equalTo($month));
     $details = new CalendarSubscriptionDetails(true);
     $this->subscriptionService->expects($this->once())->method('ForUser')->with($this->equalTo($userId))->will($this->returnValue($details));
     $this->page->expects($this->once())->method('BindSubscription')->with($this->equalTo($details));
     $this->scheduleRepository->expects($this->atLeastOnce())->method('GetAll')->will($this->returnValue($schedules));
     $this->resourceService->expects($this->atLeastOnce())->method('GetAllResources')->with($this->equalTo($showInaccessible), $this->equalTo($this->fakeUser))->will($this->returnValue($resources));
     $this->resourceService->expects($this->atLeastOnce())->method('GetResourceGroups')->with($this->anything(), $this->equalTo($this->fakeUser))->will($this->returnValue($resourceGroupTree));
     $this->page->expects($this->atLeastOnce())->method('SetFirstDay')->with($this->equalTo($schedules[1]->GetWeekdayStart()));
     $calendarFilters = new CalendarFilters($schedules, $resources, null, null, $resourceGroupTree);
     $this->page->expects($this->atLeastOnce())->method('BindFilters')->with($this->equalTo($calendarFilters));
     $this->presenter->PageLoad($this->fakeUser, $userTimezone);
 }