protected function QueueTest::runQueueTest in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/Core/Queue/QueueTest.php \Drupal\KernelTests\Core\Queue\QueueTest::runQueueTest()
Queues and dequeues a set of items to check the basic queue functionality.
Parameters
\Drupal\Core\Queue\QueueInterface $queue1: An instantiated queue object.
\Drupal\Core\Queue\QueueInterface $queue2: An instantiated queue object.
2 calls to QueueTest::runQueueTest()
- QueueTest::testMemoryQueue in core/
tests/ Drupal/ KernelTests/ Core/ Queue/ QueueTest.php - Tests the Memory queue.
- QueueTest::testSystemQueue in core/
tests/ Drupal/ KernelTests/ Core/ Queue/ QueueTest.php - Tests the System queue.
File
- core/
tests/ Drupal/ KernelTests/ Core/ Queue/ QueueTest.php, line 51
Class
- QueueTest
- Queues and dequeues a set of items to check the basic queue functionality.
Namespace
Drupal\KernelTests\Core\QueueCode
protected function runQueueTest($queue1, $queue2) {
// Create four items.
$data = [];
for ($i = 0; $i < 4; $i++) {
$data[] = [
$this
->randomMachineName() => $this
->randomMachineName(),
];
}
// Queue items 1 and 2 in the queue1.
$queue1
->createItem($data[0]);
$queue1
->createItem($data[1]);
// Retrieve two items from queue1.
$items = [];
$new_items = [];
$items[] = $item = $queue1
->claimItem();
$new_items[] = $item->data;
$items[] = $item = $queue1
->claimItem();
$new_items[] = $item->data;
// First two dequeued items should match the first two items we queued.
$this
->assertEquals(2, $this
->queueScore($data, $new_items), 'Two items matched');
// Add two more items.
$queue1
->createItem($data[2]);
$queue1
->createItem($data[3]);
$this
->assertSame(4, $queue1
->numberOfItems(), 'Queue 1 is not empty after adding items.');
$this
->assertSame(0, $queue2
->numberOfItems(), 'Queue 2 is empty while Queue 1 has items');
$items[] = $item = $queue1
->claimItem();
$new_items[] = $item->data;
$items[] = $item = $queue1
->claimItem();
$new_items[] = $item->data;
// All dequeued items should match the items we queued exactly once,
// therefore the score must be exactly 4.
$this
->assertEquals(4, $this
->queueScore($data, $new_items), 'Four items matched');
// There should be no duplicate items.
$this
->assertEquals(4, $this
->queueScore($new_items, $new_items), 'Four items matched');
// Delete all items from queue1.
foreach ($items as $item) {
$queue1
->deleteItem($item);
}
// Check that both queues are empty.
$this
->assertSame(0, $queue1
->numberOfItems(), 'Queue 1 is empty');
$this
->assertSame(0, $queue2
->numberOfItems(), 'Queue 2 is empty');
}