function EntityQueryTest::testNestedConditionGroups

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php \Drupal\KernelTests\Core\Entity\EntityQueryTest::testNestedConditionGroups()
  2. 8.9.x core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php \Drupal\KernelTests\Core\Entity\EntityQueryTest::testNestedConditionGroups()
  3. 11.x core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php \Drupal\KernelTests\Core\Entity\EntityQueryTest::testNestedConditionGroups()

Tests that nested condition groups work as expected.

File

core/tests/Drupal/KernelTests/Core/Entity/EntityQueryTest.php, line 593

Class

EntityQueryTest
Tests Entity Query functionality.

Namespace

Drupal\KernelTests\Core\Entity

Code

public function testNestedConditionGroups() : void {
  // Query for all entities of the first bundle that have either a red
  // triangle as a figure or the Turkish greeting as a greeting.
  $query = $this->storage
    ->getQuery()
    ->accessCheck(FALSE);
  $first_and = $query->andConditionGroup()
    ->condition($this->figures . '.color', 'red')
    ->condition($this->figures . '.shape', 'triangle');
  $second_and = $query->andConditionGroup()
    ->condition($this->greetings . '.value', 'merhaba')
    ->condition($this->greetings . '.format', 'format-tr');
  $or = $query->orConditionGroup()
    ->condition($first_and)
    ->condition($second_and);
  $this->queryResults = $query->condition($or)
    ->condition('type', reset($this->bundles))
    ->sort('id')
    ->execute();
  $this->assertResult(4, 6, 12, 14);
}

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