You are here

protected function KernelTestBaseTest::tearDown in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/KernelTests/KernelTestBaseTest.php \Drupal\KernelTests\KernelTestBaseTest::tearDown()

Overrides KernelTestBase::tearDown

File

core/tests/Drupal/KernelTests/KernelTestBaseTest.php, line 309

Class

KernelTestBaseTest
@coversDefaultClass \Drupal\KernelTests\KernelTestBase

Namespace

Drupal\KernelTests

Code

protected function tearDown() : void {
  parent::tearDown();

  // Check that all tables of the test instance have been deleted. At this
  // point the original database connection is restored so we need to prefix
  // the tables.
  $connection = Database::getConnection();
  if ($connection
    ->databaseType() === 'sqlite') {
    $result = $connection
      ->query("SELECT name FROM " . $this->databasePrefix . ".sqlite_master WHERE type = :type AND name LIKE :table_name AND name NOT LIKE :pattern", [
      ':type' => 'table',
      ':table_name' => '%',
      ':pattern' => 'sqlite_%',
    ])
      ->fetchAllKeyed(0, 0);
    $this
      ->assertTrue(empty($result), 'All test tables have been removed.');
  }
  else {
    $tables = $connection
      ->schema()
      ->findTables($this->databasePrefix . '%');
    $this
      ->assertTrue(empty($tables), 'All test tables have been removed.');
  }
}