|
|
|
@ -41,12 +41,52 @@ class QueryBuilderTest extends \Test\TestCase { |
|
|
|
|
$this->queryBuilder = new QueryBuilder($this->connection); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function createTestingRows() { |
|
|
|
|
$qB = $this->connection->getQueryBuilder(); |
|
|
|
|
for ($i = 1; $i < 10; $i++) { |
|
|
|
|
$qB->insert('*PREFIX*appconfig') |
|
|
|
|
->values([ |
|
|
|
|
'appid' => $qB->expr()->literal('testFirstResult'), |
|
|
|
|
'configkey' => $qB->expr()->literal('testing' . $i), |
|
|
|
|
'configvalue' => $qB->expr()->literal(100 - $i), |
|
|
|
|
]) |
|
|
|
|
->execute(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function getTestingRows(QueryBuilder $queryBuilder) { |
|
|
|
|
$queryBuilder->select('configvalue') |
|
|
|
|
->from('*PREFIX*appconfig') |
|
|
|
|
->where($queryBuilder->expr()->eq( |
|
|
|
|
'appid', |
|
|
|
|
$queryBuilder->expr()->literal('testFirstResult') |
|
|
|
|
)) |
|
|
|
|
->orderBy('configkey', 'ASC'); |
|
|
|
|
|
|
|
|
|
$query = $queryBuilder->execute(); |
|
|
|
|
$rows = []; |
|
|
|
|
while ($row = $query->fetch()) { |
|
|
|
|
$rows[] = $row['configvalue']; |
|
|
|
|
} |
|
|
|
|
$query->closeCursor(); |
|
|
|
|
|
|
|
|
|
return $rows; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
protected function deleteTestingRows() { |
|
|
|
|
$qB = $this->connection->getQueryBuilder(); |
|
|
|
|
|
|
|
|
|
$qB->delete('*PREFIX*appconfig') |
|
|
|
|
->where($qB->expr()->eq('appid', $qB->expr()->literal('testFirstResult'))) |
|
|
|
|
->execute(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function dataFirstResult() { |
|
|
|
|
return [ |
|
|
|
|
[null, [['configvalue' => 99], ['configvalue' => 98], ['configvalue' => 97], ['configvalue' => 96], ['configvalue' => 95], ['configvalue' => 94], ['configvalue' => 93], ['configvalue' => 92], ['configvalue' => 91]]], |
|
|
|
|
[0, [['configvalue' => 99], ['configvalue' => 98], ['configvalue' => 97], ['configvalue' => 96], ['configvalue' => 95], ['configvalue' => 94], ['configvalue' => 93], ['configvalue' => 92], ['configvalue' => 91]]], |
|
|
|
|
[1, [['configvalue' => 98], ['configvalue' => 97], ['configvalue' => 96], ['configvalue' => 95], ['configvalue' => 94], ['configvalue' => 93], ['configvalue' => 92], ['configvalue' => 91]]], |
|
|
|
|
[5, [['configvalue' => 94], ['configvalue' => 93], ['configvalue' => 92], ['configvalue' => 91]]], |
|
|
|
|
[null, [99, 98, 97, 96, 95, 94, 93, 92, 91]], |
|
|
|
|
[0, [99, 98, 97, 96, 95, 94, 93, 92, 91]], |
|
|
|
|
[1, [98, 97, 96, 95, 94, 93, 92, 91]], |
|
|
|
|
[5, [94, 93, 92, 91]], |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -57,18 +97,8 @@ class QueryBuilderTest extends \Test\TestCase { |
|
|
|
|
* @param array $expectedSet |
|
|
|
|
*/ |
|
|
|
|
public function testFirstResult($firstResult, $expectedSet) { |
|
|
|
|
$qB = $this->connection->getQueryBuilder(); |
|
|
|
|
$eB = $qB->expr(); |
|
|
|
|
|
|
|
|
|
for ($i = 1; $i < 10; $i++) { |
|
|
|
|
$qB->insert('*PREFIX*appconfig') |
|
|
|
|
->values([ |
|
|
|
|
'appid' => $eB->literal('testFirstResult'), |
|
|
|
|
'configkey' => $eB->literal('testing' . $i), |
|
|
|
|
'configvalue' => $eB->literal(100 - $i), |
|
|
|
|
]) |
|
|
|
|
->execute(); |
|
|
|
|
} |
|
|
|
|
$this->deleteTestingRows(); |
|
|
|
|
$this->createTestingRows(); |
|
|
|
|
|
|
|
|
|
if ($firstResult !== null) { |
|
|
|
|
$this->queryBuilder->setFirstResult($firstResult); |
|
|
|
@ -83,33 +113,20 @@ class QueryBuilderTest extends \Test\TestCase { |
|
|
|
|
$this->queryBuilder->getFirstResult() |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$this->queryBuilder->select('configvalue') |
|
|
|
|
->from('*PREFIX*appconfig') |
|
|
|
|
->where($eB->eq('appid', $eB->literal('testFirstResult'))) |
|
|
|
|
->orderBy('configkey', 'ASC'); |
|
|
|
|
|
|
|
|
|
$query = $this->queryBuilder->execute(); |
|
|
|
|
$rows = []; |
|
|
|
|
while ($row = $query->fetch()) { |
|
|
|
|
$rows[] = $row; |
|
|
|
|
} |
|
|
|
|
$query->closeCursor(); |
|
|
|
|
$rows = $this->getTestingRows($this->queryBuilder); |
|
|
|
|
|
|
|
|
|
$this->assertCount(sizeof($expectedSet), $rows); |
|
|
|
|
$this->assertEquals($expectedSet, $rows); |
|
|
|
|
|
|
|
|
|
$qB = $this->connection->getQueryBuilder(); |
|
|
|
|
$qB->delete('*PREFIX*appconfig') |
|
|
|
|
->where($eB->eq('appid', $eB->literal('testFirstResult'))) |
|
|
|
|
->execute(); |
|
|
|
|
$this->deleteTestingRows(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function dataMaxResults() { |
|
|
|
|
return [ |
|
|
|
|
[null, ''], |
|
|
|
|
[0, ' LIMIT 0'], |
|
|
|
|
[1, ' LIMIT 1'], |
|
|
|
|
[5, ' LIMIT 5'], |
|
|
|
|
[null, [99, 98, 97, 96, 95, 94, 93, 92, 91]], |
|
|
|
|
[0, []], |
|
|
|
|
[1, [99]], |
|
|
|
|
[5, [99, 98, 97, 96, 95]], |
|
|
|
|
]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -117,9 +134,12 @@ class QueryBuilderTest extends \Test\TestCase { |
|
|
|
|
* @dataProvider dataMaxResults |
|
|
|
|
* |
|
|
|
|
* @param int $maxResult |
|
|
|
|
* @param string $expectedLimit |
|
|
|
|
* @param array $expectedSet |
|
|
|
|
*/ |
|
|
|
|
public function testMaxResults($maxResult, $expectedLimit) { |
|
|
|
|
public function testMaxResults($maxResult, $expectedSet) { |
|
|
|
|
$this->deleteTestingRows(); |
|
|
|
|
$this->createTestingRows(); |
|
|
|
|
|
|
|
|
|
if ($maxResult !== null) { |
|
|
|
|
$this->queryBuilder->setMaxResults($maxResult); |
|
|
|
|
} |
|
|
|
@ -129,10 +149,12 @@ class QueryBuilderTest extends \Test\TestCase { |
|
|
|
|
$this->queryBuilder->getMaxResults() |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$this->assertSame( |
|
|
|
|
'SELECT FROM ' . $expectedLimit, |
|
|
|
|
$this->queryBuilder->getSQL() |
|
|
|
|
); |
|
|
|
|
$rows = $this->getTestingRows($this->queryBuilder); |
|
|
|
|
|
|
|
|
|
$this->assertCount(sizeof($expectedSet), $rows); |
|
|
|
|
$this->assertEquals($expectedSet, $rows); |
|
|
|
|
|
|
|
|
|
$this->deleteTestingRows(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public function dataSelect() { |
|
|
|
|