예제 #1
0
 /**
  * Reverse order by clause
  *
  * @return DataQuery
  */
 public function reverseSort()
 {
     $this->query->reverseOrderBy();
     return $this;
 }
 public function testReverseOrderBy()
 {
     $query = new SQLQuery();
     $query->setFrom('MyTable');
     // default is ASC
     $query->setOrderBy("Name");
     $query->reverseOrderBy();
     $this->assertEquals('SELECT * FROM MyTable ORDER BY Name DESC', $query->sql());
     $query->setOrderBy("Name DESC");
     $query->reverseOrderBy();
     $this->assertEquals('SELECT * FROM MyTable ORDER BY Name ASC', $query->sql());
     $query->setOrderBy(array("Name" => "ASC"));
     $query->reverseOrderBy();
     $this->assertEquals('SELECT * FROM MyTable ORDER BY Name DESC', $query->sql());
     $query->setOrderBy(array("Name" => 'DESC', 'Color' => 'asc'));
     $query->reverseOrderBy();
     $this->assertEquals('SELECT * FROM MyTable ORDER BY Name ASC, Color DESC', $query->sql());
     $query->setOrderBy('implode("MyName","Color") DESC');
     $query->reverseOrderBy();
     $this->assertEquals('SELECT *, implode("MyName","Color") AS "_SortColumn0" FROM MyTable ORDER BY "_SortColumn0" ASC', $query->sql());
 }