Roomify\Bat\Test\CalendarTest::testCalendarGetMatchingUnitsIntersect PHP Method

testCalendarGetMatchingUnitsIntersect() public method

    public function testCalendarGetMatchingUnitsIntersect()
    {
        $u1 = new Unit(1, 10, array());
        $u2 = new Unit(2, 10, array());
        $u3 = new Unit(3, 10, array());
        $units = array($u1, $u2, $u3);
        $sd = new \DateTime('2016-01-01 15:10');
        $ed = new \DateTime('2016-06-30 18:00');
        $sd1 = new \DateTime('2016-01-07 02:12');
        $ed1 = new \DateTime('2016-01-13 13:12');
        $sd2 = new \DateTime('2016-01-13 13:14');
        $ed2 = new \DateTime('2016-01-20 15:29');
        $sd3 = new \DateTime('2016-01-31 13:12');
        $ed3 = new \DateTime('2016-02-05 15:41');
        $sd4 = new \DateTime('2016-02-11 18:08');
        $ed4 = new \DateTime('2016-02-28 22:15');
        // Create some event for units 1,2,3
        $e1u1 = new Event($sd1, $ed1, $u1, 11);
        $e1u2 = new Event($sd1, $ed1, $u2, 13);
        $e1u3 = new Event($sd1, $ed1, $u3, 15);
        $e2u1 = new Event($sd2, $ed2, $u1, 15);
        $store = new SqlLiteDBStore($this->pdo, 'availability_event', SqlDBStore::BAT_STATE);
        $calendar = new Calendar($units, $store);
        // Add the events.
        $calendar->addEvents(array($e1u1, $e1u2, $e1u3, $e2u1), Event::BAT_HOURLY);
        $response = $calendar->getMatchingUnits($sd, $ed, array(10, 13), array(), TRUE);
        $this->assertEquals(count($response->getIncluded()), 3);
        $response = $calendar->getMatchingUnits($sd, $ed, array(15), array(), TRUE);
        $this->assertEquals(count($response->getIncluded()), 2);
        $response = $calendar->getMatchingUnits($sd, $ed, array(13), array(), TRUE);
        $this->assertEquals(count($response->getIncluded()), 1);
    }