/** * @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); }