public function testMeetingsThanSpanForMoreThanOneMonth() { $savedCalendars = SavedCalendar::getByName('aSavedCalendar'); $savedCalendar = $savedCalendars[0]; $meetings = Meeting::getByName('aMeeting'); $meeting = $meetings[0]; $meeting->startDateTime = '2014-04-29 01:00:00'; $meeting->endDateTime = '2014-05-09 01:00:00'; $this->assertTrue($meeting->save()); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(1, $data); $this->assertEquals('aMeeting', $data[0]->getTitle()); $meeting->startDateTime = '2014-04-29 01:00:00'; $meeting->endDateTime = '2014-06-09 01:00:00'; $this->assertTrue($meeting->save()); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(1, $data); $this->assertEquals('aMeeting', $data[0]->getTitle()); $meeting->startDateTime = '2014-05-29 01:00:00'; $meeting->endDateTime = '2014-06-09 01:00:00'; $this->assertTrue($meeting->save()); $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-05-01 01:00:00', 'endDate' => '2014-05-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(1, $data); $this->assertEquals('aMeeting', $data[0]->getTitle()); //Meeting start and ends before calendar start/end dates $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-07-01 01:00:00', 'endDate' => '2014-08-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(0, $data); //Meeting start and ends after calendar start/end dates $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser($this->super, (string) $savedCalendar->id); $dataProvider = new CalendarItemsDataProvider($savedCalendarSubscriptions, array('startDate' => '2014-01-01 01:00:00', 'endDate' => '2014-03-31 01:00:00', 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_MONTH)); $data = $dataProvider->getData(); $this->assertCount(0, $data); }
/** * Process data provider and get calendar items. * @param CalendarItemsDataProvider $dataProvider * @return boolean */ public static function processDataProviderAndGetCalendarItems(CalendarItemsDataProvider $dataProvider) { $calendarItems = $dataProvider->getData(true); $fullCalendarItems = array(); for ($k = 0; $k < count($calendarItems); $k++) { $fullCalendarItem = array(); $calItem = $calendarItems[$k]; $fullCalendarItem['title'] = $calItem->getTitle(); $fullCalendarItem['start'] = $calItem->getStartDateTime(); if (!DateTimeUtil::isDateTimeStringNull($calItem->getEndDateTime())) { $fullCalendarItem['end'] = $calItem->getEndDateTime(); } else { $fullCalendarItem['end'] = ''; } $fullCalendarItem['color'] = $calItem->getColor(); $fullCalendarItem['modelClass'] = $calItem->getModelClass(); $fullCalendarItem['modelId'] = $calItem->getModelId(); $fullCalendarItem['calendarId'] = $calItem->getCalendarId(); $fullCalendarItem['allDay'] = true; $fullCalendarItems[] = $fullCalendarItem; } if (count($fullCalendarItems) > 0) { ArrayUtil::sortArrayByElementField('compareCalendarItemsByDateTime', 'usort', $fullCalendarItems, 'CalendarUtil'); } return $fullCalendarItems; }