public function setUp()
 {
     $this->qb = self::$em->createQueryBuilder();
     $this->exprMgr = new ExpressionManager(DummyUser::clazz(), self::$em);
     $this->binder = new DoctrineQueryBuilderParametersBinder($this->qb);
     $this->compiler = new DqlCompiler($this->exprMgr);
 }
 public function testBuildQueryWithSortingContainingFunctionCall()
 {
     $this->markTestIncomplete();
     // TODO add supporting for things like that
     $qb = self::$builder->buildQueryBuilder(DummyUser::clazz(), array('sort' => array(array('function' => 'CONCAT', 'args' => array(':firstname', ':lastname')))));
 }
 public static function tearDownAfterClass()
 {
     $orderUserMetadata = self::$em->getClassMetadata(DummyOrder::clazz());
     $dummyUserMetadata = self::$em->getClassMetadata(DummyUser::clazz());
     $dummyAddressMetadata = self::$em->getClassMetadata(DummyAddress::clazz());
     $dummyCountryMetadata = self::$em->getClassMetadata(DummyCountry::clazz());
     $dummyCCMetadata = self::$em->getClassMetadata(CreditCard::clazz());
     $groupMetadata = self::$em->getClassMetadata(Group::clazz());
     $presidentMetadata = self::$em->getClassMetadata(President::clazz());
     $st = new SchemaTool(self::$em);
     $st->dropSchema(array($orderUserMetadata, $dummyUserMetadata, $dummyAddressMetadata, $dummyCountryMetadata, $dummyCCMetadata, $groupMetadata, $presidentMetadata));
 }
 public function testInjectFetchJoins()
 {
     $qb = self::$em->createQueryBuilder();
     $qb->select('e')->from(DummyUser::clazz(), 'e');
     $this->exprMgr->injectFetchSelects($qb, array(new Expression('address.country')));
     $dqlParts = $qb->getDQLParts();
     $this->assertEquals(3, count($dqlParts['select']));
     $this->assertEquals(1, count($dqlParts['join']));
     $this->assertArrayHasKey($this->exprMgr->getRootAlias(), $dqlParts['join']);
     $this->assertEquals(2, count($dqlParts['join']['e']));
 }