コード例 #1
0
 /**
  * @dataProvider getCountQueryBuilderDataProvider
  *
  * @param callback $queryBuilder
  * @param string   $expectedDql
  */
 public function testGetCountQueryBuilder($queryBuilder, $expectedDql)
 {
     $listener = new CountQueryOptimizationListener();
     $eventDispatcher = new EventDispatcher();
     $eventDispatcher->addListener(CountQueryOptimizationEvent::EVENT_NAME, [$listener, 'onOptimize']);
     $optimizer = new CountQueryBuilderOptimizer();
     $optimizer->setEventDispatcher($eventDispatcher);
     $countQb = $optimizer->getCountQueryBuilder(call_user_func($queryBuilder, $this->em));
     $this->assertInstanceOf('Doctrine\\ORM\\QueryBuilder', $countQb);
     // Check for expected DQL
     $this->assertEquals($expectedDql, $countQb->getQuery()->getDQL());
     // Check that Optimized DQL can be converted to SQL
     $this->assertNotEmpty($countQb->getQuery()->getSQL());
 }