View source
<?php
namespace Drupal\KernelTests\Core\Database;
use Composer\Autoload\ClassLoader;
use Drupal\Core\Database\Query\SelectExtender;
use Drupal\KernelTests\KernelTestBase;
use Drupal\Tests\Core\Database\Stub\StubConnection;
use Drupal\Tests\Core\Database\Stub\StubPDO;
class SelectExtenderTest extends KernelTestBase {
public function providerExtend() : array {
return [
[
'Drupal\\Core\\Database\\Query\\PagerSelectExtender',
'Drupal\\corefake\\Driver\\Database\\corefake',
'Drupal\\Core\\Database\\Query\\PagerSelectExtender',
],
[
'Drupal\\Core\\Database\\Query\\PagerSelectExtender',
'Drupal\\corefake\\Driver\\Database\\corefake',
'\\Drupal\\Core\\Database\\Query\\PagerSelectExtender',
],
[
'Drupal\\Core\\Database\\Query\\TableSortExtender',
'Drupal\\corefake\\Driver\\Database\\corefake',
'Drupal\\Core\\Database\\Query\\TableSortExtender',
],
[
'Drupal\\Core\\Database\\Query\\TableSortExtender',
'Drupal\\corefake\\Driver\\Database\\corefake',
'\\Drupal\\Core\\Database\\Query\\TableSortExtender',
],
[
'Drupal\\search\\SearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefake',
'Drupal\\search\\SearchQuery',
],
[
'Drupal\\search\\SearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefake',
'\\Drupal\\search\\SearchQuery',
],
[
'Drupal\\search\\ViewsSearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefake',
'Drupal\\search\\ViewsSearchQuery',
],
[
'Drupal\\search\\ViewsSearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefake',
'\\Drupal\\search\\ViewsSearchQuery',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\PagerSelectExtender',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'Drupal\\Core\\Database\\Query\\PagerSelectExtender',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\PagerSelectExtender',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'\\Drupal\\Core\\Database\\Query\\PagerSelectExtender',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\TableSortExtender',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'Drupal\\Core\\Database\\Query\\TableSortExtender',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\TableSortExtender',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'\\Drupal\\Core\\Database\\Query\\TableSortExtender',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\SearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'Drupal\\search\\SearchQuery',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\SearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'\\Drupal\\search\\SearchQuery',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\ViewsSearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'Drupal\\search\\ViewsSearchQuery',
],
[
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\ViewsSearchQuery',
'Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses',
'\\Drupal\\search\\ViewsSearchQuery',
],
];
}
public function testExtend(string $expected, string $namespace, string $extend) : void {
$additional_class_loader = new ClassLoader();
$additional_class_loader
->addPsr4("Drupal\\corefake\\Driver\\Database\\corefake\\", __DIR__ . "/../../../../../tests/fixtures/database_drivers/module/corefake/src/Driver/Database/corefake");
$additional_class_loader
->addPsr4("Drupal\\corefake\\Driver\\Database\\corefakeWithAllCustomClasses\\", __DIR__ . "/../../../../../tests/fixtures/database_drivers/module/corefake/src/Driver/Database/corefakeWithAllCustomClasses");
$additional_class_loader
->register(TRUE);
$mock_pdo = $this
->createMock(StubPDO::class);
$connection = new StubConnection($mock_pdo, [
'namespace' => $namespace,
]);
$select = $connection
->select('test')
->extend($extend);
$this
->assertEquals($expected, get_class($select));
$select_extender = $connection
->select('test')
->extend(SelectExtender::class);
$this
->assertEquals(SelectExtender::class, get_class($select_extender));
$select_extender_extended = $select_extender
->extend($extend);
$this
->assertEquals($expected, get_class($select_extender_extended));
}
}