function MigrateTestCase::getDatabase
Same name in other branches
- 8.9.x core/modules/migrate/tests/src/Unit/MigrateTestCase.php \Drupal\Tests\migrate\Unit\MigrateTestCase::getDatabase()
- 10 core/modules/migrate/tests/src/Unit/MigrateTestCase.php \Drupal\Tests\migrate\Unit\MigrateTestCase::getDatabase()
- 11.x core/modules/migrate/tests/src/Unit/MigrateTestCase.php \Drupal\Tests\migrate\Unit\MigrateTestCase::getDatabase()
Gets an SQLite database connection object for use in tests.
Parameters
array $database_contents: The database contents faked as an array. Each key is a table name, each value is a list of table rows, an associative array of field => value.
array $connection_options: (optional) Options for the database connection. Defaults to an empty array.
Return value
\Drupal\sqlite\Driver\Database\sqlite\Connection The database connection.
7 calls to MigrateTestCase::getDatabase()
- Drupal6SqlBaseTest::setUp in core/
modules/ migrate_drupal/ tests/ src/ Unit/ source/ d6/ Drupal6SqlBaseTest.php - DrupalSqlBaseTest::testMinimumVersion in core/
modules/ migrate_drupal/ tests/ src/ Unit/ source/ DrupalSqlBaseTest.php - @covers ::checkRequirements
- DrupalSqlBaseTest::testSourceProviderNotActive in core/
modules/ migrate_drupal/ tests/ src/ Unit/ source/ DrupalSqlBaseTest.php - @covers ::checkRequirements
- MigrateSqlIdMapTest::setUp in core/
modules/ migrate/ tests/ src/ Unit/ MigrateSqlIdMapTest.php - MigrateSqlIdMapTest::setupRows in core/
modules/ migrate/ tests/ src/ Unit/ MigrateSqlIdMapTest.php - Setup a database with the given rows.
File
-
core/
modules/ migrate/ tests/ src/ Unit/ MigrateTestCase.php, line 112
Class
- MigrateTestCase
- Provides setup and helper methods for Migrate module tests.
Namespace
Drupal\Tests\migrate\UnitCode
protected function getDatabase(array $database_contents, $connection_options = []) {
if (extension_loaded('pdo_sqlite')) {
$connection_options['database'] = ':memory:';
$pdo = Connection::open($connection_options);
$connection = new Connection($pdo, $connection_options);
}
else {
$this->markTestSkipped('The pdo_sqlite extension is not available.');
}
// Initialize the DIC with a fake module handler for alterable queries.
$container = new ContainerBuilder();
$container->set('module_handler', $this->createMock('\\Drupal\\Core\\Extension\\ModuleHandlerInterface'));
\Drupal::setContainer($container);
// Create the tables and load them up with data, skipping empty ones.
foreach (array_filter($database_contents) as $table => $rows) {
$pilot_row = reset($rows);
$connection->schema()
->createTable($table, $this->createSchemaFromRow($pilot_row));
$insert = $connection->insert($table)
->fields(array_keys($pilot_row));
array_walk($rows, [
$insert,
'values',
]);
$insert->execute();
}
return $connection;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.