Ejemplo n.º 1
0
 function testIntersects()
 {
     $datetime1 = new A_Datetime();
     $datetime1->parseDate('2001/01/01');
     $datetime2 = new A_Datetime();
     $datetime2->parseDate('2001/02/01');
     $datetime3 = new A_Datetime();
     $datetime3->parseDate('2001/03/01');
     $datetime4 = new A_Datetime();
     $datetime4->parseDate('2001/04/01');
     $datetime5 = new A_Datetime();
     $datetime5->parseDate('2001/05/01');
     // not overlapping
     $range1 = new A_Datetime_Range($datetime1, $datetime2);
     $range2 = new A_Datetime_Range($datetime3, $datetime4);
     $this->assertFalse($range1->intersects($range2));
     // range1 end date in range2
     $range1 = new A_Datetime_Range($datetime1, $datetime3);
     $range2 = new A_Datetime_Range($datetime2, $datetime4);
     $this->assertTrue($range1->intersects($range2));
     // range1 start date in range2
     $range1 = new A_Datetime_Range($datetime3, $datetime5);
     $range2 = new A_Datetime_Range($datetime1, $datetime4);
     $this->assertTrue($range1->intersects($range2));
     // range1 the same as range2
     $range1 = new A_Datetime_Range($datetime2, $datetime4);
     $range2 = new A_Datetime_Range($datetime2, $datetime4);
     $this->assertTrue($range1->intersects($range2));
     // range1 end date the same as range2 start date
     $range1 = new A_Datetime_Range($datetime1, $datetime3);
     $range2 = new A_Datetime_Range($datetime3, $datetime5);
     $this->assertTrue($range1->intersects($range2));
     // range1 start date the same as range2 end date
     $range1 = new A_Datetime_Range($datetime3, $datetime5);
     $range2 = new A_Datetime_Range($datetime1, $datetime3);
     $this->assertTrue($range1->intersects($range2));
     // range1 inside range2
     $range1 = new A_Datetime_Range($datetime2, $datetime4);
     $range2 = new A_Datetime_Range($datetime1, $datetime5);
     $this->assertTrue($range1->intersects($range2));
     // range2 inside range1
     $range1 = new A_Datetime_Range($datetime1, $datetime5);
     $range2 = new A_Datetime_Range($datetime2, $datetime4);
     $this->assertTrue($range1->intersects($range2));
 }
Ejemplo n.º 2
0
 function testIsNotWithinRangeReturnsFalse()
 {
     $date1 = new A_Datetime();
     $date1->parseDate('2008/12/20');
     $date2 = new A_Datetime();
     $date2->parseDate('2008/12/21');
     $date3 = new A_Datetime();
     $date3->parseDate('2008/12/23');
     $range = new MockA_Datetime_Range();
     $range->setReturnValue('getStart', $date2->getTimestamp());
     $range->setReturnValue('getEnd', $date3->getTimestamp());
     $this->assertFalse($date1->isWithin($range));
 }