/** * @covers edsonmedina\simpletype\DateTimeRange::__construct * @covers edsonmedina\simpletype\DateTimeRange::overlaps */ public function testDatetimeOverlaps() { $range1 = new DateTimeRange(new DateTime('2000-01-01'), new DateTime('2010-01-01')); $range2 = new DateTimeRange(new DateTime('2009-01-01'), new DateTime('2015-01-01')); $range3 = new DateTimeRange(new DateTime('1998-01-01'), new DateTime('2002-01-01')); $range4 = new DateTimeRange(new DateTime('1996-01-01'), new DateTime('2020-01-01')); $range5 = new DateTimeRange(new DateTime('2030-01-01'), new DateTime('2032-01-01')); $this->assertTrue($range1->overlaps($range2)); $this->assertTrue($range1->overlaps($range3)); $this->assertTrue($range1->overlaps($range4)); $this->assertFalse($range1->overlaps($range5)); $this->assertFalse($range2->overlaps($range3)); }
/** * Checks if ranges overlap * @param DateTimeRange $range * @return bool */ public function overlaps(DateTimeRange $range) { return $range->getStartDateTime() <= $this->end && $range->getEndDateTime() >= $this->start; }