コード例 #1
0
 /**
  * @covers CalendarItemsDataProviderFactory::getDataProviderByDateRangeType
  * @covers CalendarItemsDataProvider::fetchData
  * @covers CalendarRowsAndColumnsReportDataProvider::makeSelectQueryAdapter
  * @covers CalendarRowsAndColumnsReportDataProvider::resolveSqlQueryAdapterForCount
  * @covers CalendarRowsAndColumnsReportDataProvider::getData
  */
 public function testGetDataProviderByDateRangeType()
 {
     Yii::app()->user->userModel = User::getByUsername('super');
     $product = ProductTestHelper::createProductByNameForOwner('Test Product', Yii::app()->user->userModel);
     $savedCalendar = CalendarTestHelper::createSavedCalendarByName('Test Cal', '#315AB0');
     $currentDateTime = new DateTime('NOW');
     $currentDateTime->add(new DateInterval('P1D'));
     $savedCalendarSubscriptions = SavedCalendarSubscriptions::makeByUser(Yii::app()->user->userModel, (string) $savedCalendar->id);
     $dp = CalendarItemsDataProviderFactory::getDataProviderByDateRangeType($savedCalendarSubscriptions, '2014-01-01', $currentDateTime->format('Y-m-d'), SavedCalendar::DATERANGE_TYPE_MONTH);
     $this->assertInstanceOf('CalendarItemsDataProvider', $dp);
     $this->assertEquals('2014-01-01', $dp->getStartDate());
     $this->assertEquals($currentDateTime->format('Y-m-d'), $dp->getEndDate());
     $this->assertEquals(SavedCalendar::DATERANGE_TYPE_MONTH, $dp->getDateRangeType());
     $savedCalendarsData = $dp->getSavedCalendarSubscriptions()->getMySavedCalendarsAndSelected();
     $keys = array_keys($savedCalendarsData);
     $this->assertEquals($savedCalendar->id, $keys[0]);
     $items = CalendarUtil::getFullCalendarItems($dp);
     $this->assertCount(1, $items);
     $this->assertEquals($product->id, $items[0]['modelId']);
 }
コード例 #2
0
 /**
  * Get events for the selected calendars.
  * @param string $selectedMyCalendarIds
  * @param string $selectedSharedCalendarIds
  * @param string $startDate
  * @param string $endDate
  * @param string $dateRangeType
  */
 public function actionGetEvents($selectedMyCalendarIds = null, $selectedSharedCalendarIds = null, $startDate = null, $endDate = null, $dateRangeType = null)
 {
     $dataProvider = CalendarUtil::processAndGetDataProviderForEventsData($selectedMyCalendarIds, $selectedSharedCalendarIds, $startDate, $endDate, $dateRangeType);
     $items = CalendarUtil::getFullCalendarItems($dataProvider);
     foreach ($items as $index => $item) {
         $itemClass = isset($item['className']) ? $item['className'] : null;
         //If not more events
         if ($itemClass != 'more-events') {
             $item['description'] = Yii::app()->createUrl('calendars/default/getCalendarItemDetail', array('modelClass' => $item['modelClass'], 'modelId' => $item['modelId']));
         } else {
             $moreEventStartDate = date('Y-m-d', strtotime($item['start']));
             $dateTimeObject = new DateTime($moreEventStartDate);
             $dateTimeObject->add(new DateInterval('P1D'));
             $moreEventEndDate = $dateTimeObject->format('Y-m-d');
             $params = array('selectedMyCalendarIds' => $selectedMyCalendarIds, 'selectedSharedCalendarIds' => $selectedSharedCalendarIds, 'startDate' => $moreEventStartDate, 'endDate' => $moreEventEndDate, 'dateRangeType' => SavedCalendar::DATERANGE_TYPE_DAY);
             $item['description'] = Yii::app()->createUrl('calendars/default/getDayEvents', $params);
         }
         $items[$index] = $item;
     }
     echo CJSON::encode(array('items' => $items, 'isMaxCountReached' => $dataProvider->getIsMaxCountReached()));
 }
コード例 #3
0
 /**
  * @covers SavedCalendarSubscriptions::makeByUser
  * @covers SavedCalendarSubscriptions::addMySavedCalendars
  * @covers SavedCalendarSubscriptions::addMySubscribedCalendars
  * @covers SavedCalendarSubscriptions::addMySavedCalendar
  * @covers SavedCalendarSubscriptions::addSubscribedToCalendar
  */
 public function testProcessUserCalendarsAndMakeDataProviderForCombinedView()
 {
     $savedCalendars = SavedCalendar::getByName('Test Cal');
     $subscribedCalendars = CalendarUtil::getUserSubscribedCalendars(Yii::app()->user->userModel);
     $dp = CalendarUtil::processAndGetDataProviderForEventsData(strval($savedCalendars[0]->id), strval($subscribedCalendars[0]->savedcalendar->id), null, null, null, false);
     $calendarItems = $dp->getData();
     $this->assertCount(2, $calendarItems);
     $this->assertEquals('First Product', $calendarItems[0]->getTitle());
     $this->assertEquals('Second Product', $calendarItems[1]->getTitle());
     //Check getFullCalendarItems
     $items = CalendarUtil::getFullCalendarItems($dp);
     $this->assertCount(2, $items);
     $this->assertEquals('First Product', $items[0]['title']);
     $this->assertFalse(isset($items[0]['detailsUrl']));
     $this->assertEquals('Second Product', $items[1]['title']);
     $items = CalendarUtil::populateDetailsUrlForCalendarItems($items);
     $this->assertTrue(isset($items[0]['detailsUrl']));
     $this->assertEquals(Yii::app()->createUrl('/products/default/details', array('id' => $savedCalendars[0]->id)), $items[0]['detailsUrl']);
 }