You are here

public function UpdateTest::testUpdateAffectedRows in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Database/UpdateTest.php \Drupal\KernelTests\Core\Database\UpdateTest::testUpdateAffectedRows()
  2. 10 core/tests/Drupal/KernelTests/Core/Database/UpdateTest.php \Drupal\KernelTests\Core\Database\UpdateTest::testUpdateAffectedRows()

Tests return value on update.

File

core/tests/Drupal/KernelTests/Core/Database/UpdateTest.php, line 116

Class

UpdateTest
Tests the update query builder.

Namespace

Drupal\KernelTests\Core\Database

Code

public function testUpdateAffectedRows() {

  // At 5am in the morning, all band members but those with a priority 1 task
  // are sleeping. So we set their tasks to 'sleep'. 5 records match the
  // condition and therefore are affected by the query, even though two of
  // them actually don't have to be changed because their value was already
  // 'sleep'. Still, execute() should return 5 affected rows, not only 3,
  // because that's cross-db expected behavior.
  $num_rows = $this->connection
    ->update('test_task')
    ->condition('priority', 1, '<>')
    ->fields([
    'task' => 'sleep',
  ])
    ->execute();
  $this
    ->assertIdentical($num_rows, 5, 'Correctly returned 5 affected rows.');
}