public function testMergeOrderBy() { $this->queryBuilder->orderBy('price', SelectQueryBuilder::DESC); $qb = new SelectQueryBuilder(); $qb->orderBy('score', SelectQueryBuilder::ASC); $this->queryBuilder->mergeOrderBy($qb); $expected = array(array('column' => 'price', 'order' => SelectQueryBuilder::DESC), array('column' => 'score', 'order' => SelectQueryBuilder::ASC)); // echo var_export($this->queryBuilder->getOrderByParts()); $this->assertEquals($expected, $this->queryBuilder->getOrderByParts()); }
/** * Merges the given QueryBuilder's ORDER BYs into this QueryBuilder. * * @param \SQL\SelectQueryBuilder $QueryBuilder to merge * * @return \SQL\SelectQueryBuilder the current QueryBuilder */ public function mergeOrderBy(SelectQueryBuilder $QueryBuilder) { foreach ($QueryBuilder->getOrderByParts() as $currentOrderBy) { $this->orderBy($currentOrderBy['column'], $currentOrderBy['order']); } return $this; }