$this->assertEquals('INNER JOIN u.Profile p ON p.user_id = u.id',(string)Expr::innerJoin('u','Profile','p',Expr::on(Expr::eq('p.user_id','u.id'))));
}
publicfunctiontestInnerJoinWithConditionExpr()
{
$this->assertEquals('INNER JOIN u.Profile p WITH p.user_id = u.id',(string)Expr::innerJoin('u','Profile','p',Expr::with(Expr::eq('p.user_id','u.id'))));
$this->assertValidQueryBuilder($qb,'SELECT u, a FROM Doctrine\Tests\Models\CMS\CmsUser u LEFT JOIN u.articles a');
$this->assertValidQueryBuilder($qb,'UPDATE Doctrine\Tests\Models\CMS\CmsUser u SET u.username = :username');
}
}
publicfunctiontestWhere()
publicfunctiontestInnerJoin()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u','a')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :uid')
->innerJoin('u','articles','a');
->where('u.id = :id');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id');
$this->assertValidQueryBuilder($qb,'SELECT u, a FROM Doctrine\Tests\Models\CMS\CmsUser u INNER JOIN u.articles a');
}
}
publicfunctiontestAndWhere()
publicfunctiontestLeftJoin()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u','a')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :id')
->leftJoin('u','articles','a');
->andWhere('u.username = :username');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id AND u.username = :username');
$this->assertValidQueryBuilder($qb,'SELECT u, a FROM Doctrine\Tests\Models\CMS\CmsUser u LEFT JOIN u.articles a');
}
}
publicfunctiontestOrWhere()
publicfunctiontestWhere()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :id')
->where('u.id = :uid');
->orWhere('u.username = :username');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id OR u.username = :username');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :uid');
}
}
/*
publicfunctiontestGroupBy()
public function testWhereIn()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->whereIn('u.id', array(1));
->groupBy('u.id');
$this->assertValidQueryBuilder($qb, 'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id IN(1)');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u GROUP BY u.id');
}
}
public function testWhereNotIn()
publicfunctiontestHaving()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->whereNotIn('u.id', array(1));
->groupBy('u.id')
->having('COUNT(u.id) > 1');
$this->assertValidQueryBuilder($qb, 'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id NOT IN(1)');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u GROUP BY u.id HAVING COUNT(u.id) > 1');
}
}
public function testAndWhereIn()
publicfunctiontestAndHaving()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :id')
->groupBy('u.id')
->andWhereIn('u.id', array(1, 2, 3));
->having('COUNT(u.id) > 1')
->andHaving('COUNT(u.id) < 1');
$this->assertValidQueryBuilder($qb, 'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id AND u.id IN(1, 2, 3)');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u GROUP BY u.id HAVING COUNT(u.id) > 1 AND COUNT(u.id) < 1');
}
}
public function testAndWhereNotIn()
publicfunctiontestOrHaving()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :id')
->groupBy('u.id')
->andWhereNotIn('u.id', array(1, 2, 3));
->having('COUNT(u.id) > 1')
->andHaving('COUNT(u.id) < 1')
->orHaving('COUNT(u.id) > 1');
$this->assertValidQueryBuilder($qb, 'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id AND u.id NOT IN(1, 2, 3)');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u GROUP BY u.id HAVING COUNT(u.id) > 1 AND COUNT(u.id) < 1 OR COUNT(u.id) > 1');
}
}
public function testOrWhereIn()
publicfunctiontestOrderBy()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :id')
->orderBy('u.username','ASC');
->orWhereIn('u.id', array(1, 2, 3));
$this->assertValidQueryBuilder($qb, 'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id OR u.id IN(1, 2, 3)');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u ORDER BY u.username ASC');
}
}
public function testOrWhereNotIn()
publicfunctiontestAddOrderBy()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->where('u.id = :id')
->orderBy('u.username','ASC')
->orWhereNotIn('u.id', array(1, 2, 3));
->addOrderBy('u.username','DESC');
$this->assertValidQueryBuilder($qb, 'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u WHERE u.id = :id OR u.id NOT IN(1, 2, 3)');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u ORDER BY u.username ASC, u.username DESC');
}
}
*/
publicfunctiontestGroupBy()
publicfunctiontestGetQuery()
{
{
$qb=QueryBuilder::create($this->_em)
$qb=QueryBuilder::create($this->_em)
->select('u')
->select('u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u')
->from('Doctrine\Tests\Models\CMS\CmsUser','u');
->groupBy('u.id');
$q=$qb->getQuery();
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u GROUP BY u.id');
$this->assertValidQueryBuilder($qb,'SELECT u FROM Doctrine\Tests\Models\CMS\CmsUser u GROUP BY u.id HAVING COUNT(u.id) > 1 AND COUNT(u.id) < 1 OR COUNT(u.id) > 1');