Example #1
0
 public function testApplyJoins()
 {
     $joins = ['emails' => null, 'phones', 'contacts' => [], 'accounts' => ['join' => 'accounts_field'], 'users' => ['join' => 'accounts.users_field', 'condition' => 'users.active = true', 'conditionType' => 'WITH'], 'products' => ['condition' => 'products.active = true']];
     $qb = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock();
     $qb->expects($this->once())->method('distinct')->with(true);
     $qb->expects($this->once())->method('getRootAliases')->willReturn(['root_alias']);
     $qb->expects($this->at(2))->method('leftJoin')->with('root_alias.emails', 'emails');
     $qb->expects($this->at(3))->method('leftJoin')->with('root_alias.phones', 'phones');
     $qb->expects($this->at(4))->method('leftJoin')->with('root_alias.contacts', 'contacts');
     $qb->expects($this->at(5))->method('leftJoin')->with('root_alias.accounts_field', 'accounts');
     $qb->expects($this->at(6))->method('leftJoin')->with('accounts.users_field', 'users', 'WITH', 'users.active = true');
     $qb->expects($this->at(7))->method('leftJoin')->with('root_alias.products', 'products', 'WITH', 'products.active = true');
     QueryUtils::applyJoins($qb, $joins);
 }