function DriverModuleMissingDependenciesTest::testDetermineDriversAutoloadingFailingOnMissingDependency

Same name in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Database/DriverModuleMissingDependenciesTest.php \Drupal\Tests\Core\Database\DriverModuleMissingDependenciesTest::testDetermineDriversAutoloadingFailingOnMissingDependency()

@covers ::get

File

core/tests/Drupal/Tests/Core/Database/DriverModuleMissingDependenciesTest.php, line 32

Class

DriverModuleMissingDependenciesTest
Tests for database driver module with missing dependency.

Namespace

Drupal\Tests\Core\Database

Code

public function testDetermineDriversAutoloadingFailingOnMissingDependency() : void {
    $root = realpath(dirname(__FILE__) . '/fixtures');
    // Mock the container so we don't need to mock drupal_valid_test_ua().
    // @see \Drupal\Core\Extension\ExtensionDiscovery::scan()
    $container = $this->createMock(ContainerInterface::class);
    $container->expects($this->any())
        ->method('has')
        ->with('kernel')
        ->willReturn(TRUE);
    $container->expects($this->any())
        ->method('getParameter')
        ->with()
        ->willReturnMap([
        [
            'install_profile',
            '',
        ],
        [
            'site.path',
            '',
        ],
    ]);
    $container->expects($this->any())
        ->method('get')
        ->with('extension.list.database_driver')
        ->willReturn(new DatabaseDriverList($root, 'database_driver', new NullBackend('database_driver')));
    \Drupal::setContainer($container);
    $this->expectException(UnknownExtensionException::class);
    $this->expectExceptionMessage("The database_driver a_really_missing_module\\dependent_driver does not exist.");
    $container->get('extension.list.database_driver')
        ->includeTestDrivers(TRUE)
        ->get('a_really_missing_module\\dependent_driver')
        ->getAutoloadInfo();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.