function WorkspaceIntegrationTest::assertEntityQuery
Same name in other branches
- 8.9.x core/modules/workspaces/tests/src/Kernel/WorkspaceIntegrationTest.php \Drupal\Tests\workspaces\Kernel\WorkspaceIntegrationTest::assertEntityQuery()
- 10 core/modules/workspaces/tests/src/Kernel/WorkspaceIntegrationTest.php \Drupal\Tests\workspaces\Kernel\WorkspaceIntegrationTest::assertEntityQuery()
- 11.x core/modules/workspaces/tests/src/Kernel/WorkspaceIntegrationTest.php \Drupal\Tests\workspaces\Kernel\WorkspaceIntegrationTest::assertEntityQuery()
Asserts that entity queries are giving the correct results in a workspace.
@internal
Parameters
array $expected_values: An array of expected values, as defined in ::testWorkspaces().
string $entity_type_id: The ID of the entity type to check.
1 call to WorkspaceIntegrationTest::assertEntityQuery()
- WorkspaceIntegrationTest::assertWorkspaceStatus in core/
modules/ workspaces/ tests/ src/ Kernel/ WorkspaceIntegrationTest.php - Checks entity load, entity queries and views results for a test scenario.
File
-
core/
modules/ workspaces/ tests/ src/ Kernel/ WorkspaceIntegrationTest.php, line 920
Class
- WorkspaceIntegrationTest
- Tests a complete publishing scenario across different workspaces.
Namespace
Drupal\Tests\workspaces\KernelCode
protected function assertEntityQuery(array $expected_values, string $entity_type_id) : void {
$storage = $this->entityTypeManager
->getStorage($entity_type_id);
$entity_keys = $this->entityTypeManager
->getDefinition($entity_type_id)
->getKeys();
$id_key = $entity_keys['id'];
$revision_key = $entity_keys['revision'];
$label_key = $entity_keys['label'];
$published_key = $entity_keys['published'];
// Filter the expected values so we can check only the default revisions.
$expected_default_revisions = array_filter($expected_values, function ($expected_value) {
return $expected_value['default_revision'] === TRUE;
});
// Check entity query counts.
$result = (int) $storage->getQuery()
->accessCheck(FALSE)
->count()
->execute();
$this->assertSame(count($expected_default_revisions), $result);
$result = (int) $storage->getAggregateQuery()
->accessCheck(FALSE)
->count()
->execute();
$this->assertSame(count($expected_default_revisions), $result);
// Check entity queries with no conditions.
$result = $storage->getQuery()
->accessCheck(FALSE)
->execute();
$expected_result = array_combine(array_column($expected_default_revisions, $revision_key), array_column($expected_default_revisions, $id_key));
$this->assertEquals($expected_result, $result);
// Check querying each revision individually.
foreach ($expected_values as $expected_value) {
$query = $storage->getQuery()
->accessCheck(FALSE);
$query->condition($entity_keys['id'], $expected_value[$id_key])
->condition($entity_keys['label'], $expected_value[$label_key])
->condition($entity_keys['published'], (int) $expected_value[$published_key]);
// If the entity is not expected to be the default revision, we need to
// query all revisions if we want to find it.
if (!$expected_value['default_revision']) {
$query->allRevisions();
}
$result = $query->execute();
$this->assertEquals([
$expected_value[$revision_key] => $expected_value[$id_key],
], $result);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.