/**
  * @dataProvider testGetEventsProvider
  */
 public function testGetEvents($begin, $end, array $eventUids)
 {
     $events = $this->repo->getEvents(new \DateTime($begin), new \DateTime($end));
     $this->assertSame(count($eventUids), count($events));
     foreach ($events as $event) {
         $this->assertContains($event->getUid(), $eventUids);
         unset($eventUids[array_search($event->getUid(), $eventUids)]);
     }
     $this->assertEmpty($eventUids);
 }
 /**
  * @dataProvider testGetEventsProvider
  */
 public function testGetEvents($begin, $end, array $providedEvents)
 {
     $expr = $this->getMock('Doctrine\\ORM\\Query\\Expr');
     $query = $this->getMockBuilder('Doctrine\\ORM\\AbstractQuery')->disableOriginalConstructor()->setMethods(array('_doExecute', 'getSQL', 'execute', 'getResult'))->getMock();
     $query->expects($this->once())->method('getResult')->will($this->returnValue($providedEvents));
     $this->em->expects($this->once())->method('createQueryBuilder')->will($this->returnValue($this->qb));
     $this->qb->expects($this->once())->method('select')->will($this->returnValue($this->qb));
     $this->qb->expects($this->once())->method('from')->will($this->returnValue($this->qb));
     $this->qb->expects($this->once())->method('andWhere')->will($this->returnValue($this->qb));
     $this->qb->expects($this->once())->method('getQuery')->will($this->returnValue($query));
     $this->qb->expects($this->atLeastOnce())->method('expr')->will($this->returnValue($expr));
     $expr->expects($this->once())->method('orX');
     $expr->expects($this->exactly(4))->method('andX');
     $events = $this->repo->getEvents(new \DateTime($begin), new \DateTime($end));
     $this->assertSame($providedEvents, $events);
 }