// Assert that the module "driver_test" has been installed.
$this->
assertEquals(\Drupal::
service('module_handler'
)->
getModule('driver_test'
),
new Extension($this->root, 'module', 'core/modules/system/tests/modules/driver_test/driver_test.info.yml'
));
// Change the default database connection to use the database driver from
// the module "driver_test".
$connection_info = Database::
getConnectionInfo();
$driver_test_connection =
$connection_info['default'
];
$driver_test_connection['driver'
] =
$this->testDriverName;
$driver_test_connection['namespace'
] = 'Drupal\\driver_test\\Driver\\Database\\' .
$this->testDriverName;
$driver_test_connection['autoload'
] = "core/modules/system/tests/modules/driver_test/src/Driver/Database/{
$this->testDriverName
}/";
Database::
renameConnection('default', 'original_database_connection'
);
Database::
addConnectionInfo('default', 'default',
$driver_test_connection);
// The module "driver_test" should not be uninstallable, because it is
// providing the database driver.
try { $this->container->
get('module_installer'
)->
uninstall(['driver_test'
]);
$this->
fail('Uninstalled driver_test module.'
);
} catch (ModuleUninstallValidatorException
$e) { $this->
assertStringContainsString("The module 'Contrib database driver test' is providing the database driver '{
$this->testDriverName
}'.",
$e->
getMessage());
}