/** * @dataProvider dataForTestReoccurIfDifferentFalse */ public function testReoccurIfDifferentFalse($first, $second) { $iem = new ImportedEventModel(); $iem->setReoccur(array('ical_rrule' => $first)); $this->assertTrue($iem->setReoccurIfDifferent(array('ical_rrule' => $second))); }
protected function setOurEventFromIcalEvent(ImportedEventModel $importedEvent, ICalEvent $icalevent) { $changesToSave = false; if ($importedEvent->getDescription() != $icalevent->getDescription()) { $importedEvent->setDescription($icalevent->getDescription()); $changesToSave = true; } if ($importedEvent->getTimezone() != $this->icalParser->getTimeZoneIdentifier()) { $importedEvent->setTimezone($this->icalParser->getTimeZoneIdentifier()); $changesToSave = true; } if (!$importedEvent->getStartAt() || $importedEvent->getStartAt()->getTimeStamp() != $icalevent->getStart()->getTimeStamp()) { $importedEvent->setStartAt(clone $icalevent->getStart()); $changesToSave = true; } if (!$importedEvent->getEndAt() || $importedEvent->getEndAt()->getTimeStamp() != $icalevent->getEnd()->getTimeStamp()) { $importedEvent->setEndAt(clone $icalevent->getEnd()); $changesToSave = true; } if ($importedEvent->getTitle() != $icalevent->getSummary()) { $importedEvent->setTitle($icalevent->getSummary()); $changesToSave = true; } if ($importedEvent->getUrl() != $icalevent->getUrl()) { $importedEvent->setUrl($icalevent->getUrl()); $changesToSave = true; } if ($this->importURLRun->hasFlag(ImportURLRun::$FLAG_SET_TICKET_URL_AS_URL) && $importedEvent->getTicketUrl() != $icalevent->getUrl()) { $importedEvent->setTicketUrl($icalevent->getUrl()); $changesToSave = true; } if ($icalevent->getRRule()) { $reoccur = array('ical_rrule' => $icalevent->getRRule(), 'ical_exdates' => array()); foreach ($icalevent->getExDates() as $exDate) { $reoccur['ical_exdates'][] = array('properties' => $exDate->getProperties(), 'values' => $exDate->getValues()); } } else { $reoccur = array(); } if ($importedEvent->setReoccurIfDifferent($reoccur)) { $changesToSave = true; } return $changesToSave; }