function ViewsDataTest::testFetchBaseTables

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Unit/ViewsDataTest.php \Drupal\Tests\views\Unit\ViewsDataTest::testFetchBaseTables()
  2. 8.9.x core/modules/views/tests/src/Unit/ViewsDataTest.php \Drupal\Tests\views\Unit\ViewsDataTest::testFetchBaseTables()
  3. 11.x core/modules/views/tests/src/Unit/ViewsDataTest.php \Drupal\Tests\views\Unit\ViewsDataTest::testFetchBaseTables()

Tests the fetchBaseTables() method.

File

core/modules/views/tests/src/Unit/ViewsDataTest.php, line 145

Class

ViewsDataTest
@coversDefaultClass \Drupal\views\ViewsData[[api-linebreak]] @group views

Namespace

Drupal\Tests\views\Unit

Code

public function testFetchBaseTables() : void {
  $this->setupMockedModuleHandler();
  $data = $this->viewsData
    ->getAll();
  $base_tables = $this->viewsData
    ->fetchBaseTables();
  // Ensure that 'provider' is set for each base table.
  foreach (array_keys($base_tables) as $base_table) {
    $this->assertEquals('views_test_data', $data[$base_table]['table']['provider']);
  }
  // Test the number of tables returned and their order.
  $this->assertCount(6, $base_tables, 'The correct amount of base tables were returned.');
  $base_tables_keys = array_keys($base_tables);
  for ($i = 1; $i < count($base_tables); ++$i) {
    $prev = $base_tables[$base_tables_keys[$i - 1]];
    $current = $base_tables[$base_tables_keys[$i]];
    $this->assertGreaterThanOrEqual($prev['weight'], $current['weight']);
  }
  // Test the values returned for each base table.
  $defaults = [
    'title' => '',
    'help' => '',
    'weight' => 0,
  ];
  foreach ($base_tables as $base_table => $info) {
    // Merge in default values as in fetchBaseTables().
    $expected = $data[$base_table]['table']['base'] += $defaults;
    foreach ($defaults as $key => $default) {
      $this->assertSame($info[$key], $expected[$key]);
    }
  }
}

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