You are here

public function PluginTestBase::testLeaseTime in Purge 8.3

Test the behavior of lease time when claiming queue items.

File

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

Class

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

Namespace

Drupal\Tests\purge\Kernel\Queue

Code

public function testLeaseTime() : void {
  $this
    ->assertSame(FALSE, $this->queue
    ->claimItem());
  $this->queue
    ->createItem($this
    ->randomString());
  $this
    ->assertEquals(1, $this->queue
    ->numberOfItems());
  $this
    ->assertSame(TRUE, is_object($this->queue
    ->claimItem(5)));
  $this
    ->assertSame(FALSE, $this->queue
    ->claimItem());
  sleep(6);
  $this
    ->assertSame(TRUE, is_object($this->queue
    ->claimItem(2)));
  $this
    ->assertSame(FALSE, $this->queue
    ->claimItem(1));
  sleep(3);
  $this
    ->assertSame(TRUE, is_object($this->queue
    ->claimItem(2)));
  $this->queue
    ->deleteQueue();

  // Test claimItemMultiple which should work in the same way.
  $this
    ->assertSame(TRUE, empty($this->queue
    ->claimItemMultiple(2)));
  for ($i = 1; $i <= 5; $i++) {
    $this->queue
      ->createItem($this
      ->randomString());
  }
  $this
    ->assertSame(count($this->queue
    ->claimItemMultiple(5, 5)), 5);
  $this
    ->assertSame(TRUE, empty($this->queue
    ->claimItemMultiple(2)));
  sleep(6);
  $this
    ->assertSame(count($this->queue
    ->claimItemMultiple(5, 5)), 5);
  $this->queue
    ->deleteQueue();
}