Example #1
0
 private function assertRepetition(Event $repetition, Event $original, $isOverwriting)
 {
     $this->assertSame($original, $repetition->getOriginal(), 'Repetition should have original. Repetion=' . $repetition->getName() . ' Expected=' . $original->getName() . ' Actual=' . $repetition->getOriginal()->getName());
     $this->assertSame($isOverwriting, $repetition->isOverwriting(), 'Repetition should ' . ($isOverwriting ? '' : 'NOT ') . 'overwrite original. Repetion=' . $repetition->getName());
 }
Example #2
0
 /**
  * Compare two events to sort them by date (and whether they are repetitions)
  * This is mostly for debugging
  * @param \Application\Model\Event $event
  * @return int
  */
 public function compare(Event $event)
 {
     // Keep repetitions at the end of the list
     if ($this->getOriginal() && !$event->getOriginal()) {
         return 1;
     } elseif (!$this->getOriginal() && $event->getOriginal()) {
         return -1;
     }
     $s1 = $this->getStart();
     $s2 = $event->getStart();
     $e1 = $this->getEnd();
     $e2 = $event->getEnd();
     // First compare start date
     if ($s1 > $s2) {
         return 1;
     } elseif ($s1 < $s2) {
         return -1;
     }
     // Then end date
     if ($e1 > $e2) {
         return 1;
     } elseif ($e1 < $e2) {
         return -1;
     }
     // Finally full day events come first
     if ($this->isAllDay() && !$event->isAllDay()) {
         return 1;
     } elseif (!$this->isAllDay() && $event->isAllDay()) {
         return -1;
     }
     return 0;
 }