function SelectGetRangeTest::testGetRangeReferenceOnSelectExtender
Same name and namespace in other branches
- 11.x core/tests/Drupal/KernelTests/Core/Database/SelectGetRangeTest.php \Drupal\KernelTests\Core\Database\SelectGetRangeTest::testGetRangeReferenceOnSelectExtender()
Ensures SelectExtender::getRange() delegates and returns a live reference.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Database/ SelectGetRangeTest.php, line 56
Class
- SelectGetRangeTest
- Tests SelectInterface::getRange().
Namespace
Drupal\KernelTests\Core\DatabaseCode
public function testGetRangeReferenceOnSelectExtender() : void {
$raw = $this->connection
->select('test', 't')
->fields('t', [
'name',
])
->orderBy('name')
->execute()
->fetchCol();
$base_query = $this->connection
->select('test', 't')
->fields('t', [
'name',
])
->orderBy('name');
/** @var \Drupal\Core\Database\Query\SelectExtender $extender */
$extender = $base_query->extend(SelectExtender::class);
$range =& $extender->getRange();
$this->assertNull($range);
$base_query->range(2, 2);
$this->assertSame([
'start' => 2,
'length' => 2,
], $extender->getRange());
$range2 =& $extender->getRange();
$range2['length'] = 1;
$this->assertEquals(1, $range['length']);
$names = $extender->execute()
->fetchCol();
$expected = array_slice($raw, 2, 1);
$this->assertSame($expected, $names);
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.