/**
* Tests that countQuery removes 'all_fields' statements and ordering clauses.
*/
public function testCountQueryRemovals() { $query =
$this->connection->
select('test'
);
$query->
fields('test'
);
$query->
orderBy('name'
);
$count =
$query->
countQuery();
// Check that the 'all_fields' statement is handled properly.
$tables =
$query->
getTables();
$this->
assertEquals(1,
$tables['test'
]['all_fields'
], 'Query correctly sets \'all_fields\' statement.'
);
$tables =
$count->
getTables();
$this->
assertFalse(isset($tables['test'
]['all_fields'
]), 'Count query correctly unsets \'all_fields\' statement.'
);
// Check that the ordering clause is handled properly.
$orderby =
$query->
getOrderBy();
// The orderby string is different for PostgreSQL.
// @see Drupal\pgsql\Driver\Database\pgsql\Select::orderBy()
$db_type = Database::
getConnection()->
databaseType();
$this->
assertEquals($db_type == 'pgsql' ? 'ASC NULLS FIRST' : 'ASC',
$orderby['name'
], 'Query correctly sets ordering clause.'
);
$orderby =
$count->
getOrderBy();