public function testThrowsWhenAddingAvailabilitiesBeforeDateRange()
 {
     $expectedAvailability = new IntellitimeAvailability();
     $expectedAvailability->setDate(date_make_date('2011-07-13'));
     $page = $this->build_from_page('availability-1-day.txt');
     try {
         $page->setAvailabilities(array($expectedAvailability));
         $this->fail();
     } catch (InvalidArgumentException $e) {
         $this->assertNotNull($e, 'Expected exception');
     }
 }
 function testGetDateDoesNotReturnSameObjectAsSet()
 {
     $this->availability->setDate($this->expected_date);
     $this->assertNotSame($this->availability->getDate(), $this->expected_date);
 }
 public function testNonConsecutiveRangesBecomesThreeAvailabilities()
 {
     $expected_ia = new IntellitimeAvailability(date_make_date('2011-06-23'), 'abc_form_id');
     $expected_ia->setDay(TRUE)->setEvening(TRUE)->setNight(TRUE);
     $factory = new IntellitimeAvailabilityFactory($this->store, "08:00-11:59", "12:00-17:59", "18:00-01:00");
     $availabilities = $factory->createAvailabilities($expected_ia);
     $this->assertEquals(3, count($availabilities));
     $this->assertEquals('2011-06-23 08:00:00', $availabilities[0]->getStartTime()->format('Y-m-d H:i:s'));
     $this->assertEquals('2011-06-23 11:59:00', $availabilities[0]->getEndTime()->format('Y-m-d H:i:s'));
     $this->assertEquals('2011-06-23 12:00:00', $availabilities[1]->getStartTime()->format('Y-m-d H:i:s'));
     $this->assertEquals('2011-06-23 17:59:00', $availabilities[1]->getEndTime()->format('Y-m-d H:i:s'));
     $this->assertEquals('2011-06-23 18:00:00', $availabilities[2]->getStartTime()->format('Y-m-d H:i:s'));
     $this->assertEquals('2011-06-24 01:00:00', $availabilities[2]->getEndTime()->format('Y-m-d H:i:s'));
 }