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()); }
/** * 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; }