You are here

public static function TestDatabase::lastTestGet in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Test/TestDatabase.php \Drupal\Core\Test\TestDatabase::lastTestGet()

Get information about the last test that ran given a test ID.

@internal

Parameters

int $test_id: The test ID to get the last test from.

Return value

array Associative array containing the last database prefix used and the last test class that ran.

File

core/lib/Drupal/Core/Test/TestDatabase.php, line 252

Class

TestDatabase
Provides helper methods for interacting with the fixture database.

Namespace

Drupal\Core\Test

Code

public static function lastTestGet($test_id) {
  $connection = static::getConnection();

  // Define a subquery to identify the latest 'message_id' given the
  // $test_id.
  $max_message_id_subquery = $connection
    ->select('simpletest', 'sub')
    ->condition('test_id', $test_id);
  $max_message_id_subquery
    ->addExpression('MAX([message_id])', 'max_message_id');

  // Run a select query to return 'last_prefix' from {simpletest_test_id} and
  // 'test_class' from {simpletest}.
  $select = $connection
    ->select($max_message_id_subquery, 'st_sub');
  $select
    ->join('simpletest', 'st', '[st].[message_id] = [st_sub].[max_message_id]');
  $select
    ->join('simpletest_test_id', 'sttid', '[st].[test_id] = [sttid].[test_id]');
  $select
    ->addField('sttid', 'last_prefix');
  $select
    ->addField('st', 'test_class');
  return $select
    ->execute()
    ->fetchAssoc();
}