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);
}