You are here

public function PluginTestBase::testQueueCountBehavior in Purge 8.3

Test the queue counter by deleting items and emptying the queue.

File

tests/src/Kernel/Queue/PluginTestBase.php, line 86

Class

PluginTestBase
Provides a abstract test class to aid thorough tests for queue plugins.

Namespace

Drupal\Tests\purge\Kernel\Queue

Code

public function testQueueCountBehavior() : void {
  $this
    ->assertNull($this->queue
    ->deleteQueue());
  $this
    ->assertSame(TRUE, is_int($this->queue
    ->numberOfItems()));
  $this
    ->assertEquals(0, $this->queue
    ->numberOfItems());
  for ($i = 1; $i <= 5; $i++) {
    $id = $this->queue
      ->createItem($i);
    $this
      ->assertSame(TRUE, is_scalar($id));
    $this
      ->assertSame(TRUE, $id !== FALSE);
    $this
      ->assertEquals($i, $this->queue
      ->numberOfItems());
  }
  $this
    ->assertSame(TRUE, is_object($this->queue
    ->claimItem(1)));
  $this
    ->assertSame(TRUE, is_int($this->queue
    ->numberOfItems()));
  $this
    ->assertEquals(5, $this->queue
    ->numberOfItems());
  $this
    ->assertNull($this->queue
    ->deleteQueue());
  $this
    ->assertEquals(0, $this->queue
    ->numberOfItems());
  for ($i = 1; $i <= 10; $i++) {
    $this->queue
      ->createItem($i);
  }
  for ($i = 10; $i > 5; $i--) {
    $claim = $this->queue
      ->claimItem();
    $this
      ->assertNull($this->queue
      ->deleteItem($claim));
    $this
      ->assertEquals($i - 1, $this->queue
      ->numberOfItems());
  }
  $claims = $this->queue
    ->claimItemMultiple(5);
  $this->queue
    ->deleteItemMultiple($claims);
  $this
    ->assertEquals(0, $this->queue
    ->numberOfItems());
  $this->queue
    ->deleteQueue();
}