You are here

public function PluginTestBase::testCreatingClaimingAndReleasing in Purge 8.3

Test creating, claiming and releasing of items.

File

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

Class

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

Namespace

Drupal\Tests\purge\Kernel\Queue

Code

public function testCreatingClaimingAndReleasing() : void {
  $this->queue
    ->createItem([
    1,
    2,
    3,
  ]);
  $claim = $this->queue
    ->claimItem(3600);

  // Change the claim data to verify that releasing changed data, persists.
  $claim->data = [
    4,
    5,
    6,
  ];
  $this
    ->assertSame(FALSE, $this->queue
    ->claimItem(3600));
  $this
    ->assertSame(TRUE, $this->queue
    ->releaseItem($claim));
  $this
    ->assertSame(TRUE, is_object($claim = $this->queue
    ->claimItem(3600)));
  $this
    ->assertSame($claim->data, [
    4,
    5,
    6,
  ]);
  $this->queue
    ->releaseItem($claim);
  $this
    ->assertSame(count($this->queue
    ->createItemMultiple([
    1,
    2,
    3,
    4,
  ])), 4);
  $claims = $this->queue
    ->claimItemMultiple(5, 3600);
  foreach ($claims as $i => $claim) {
    $claim->data = 9;
    $claims[$i] = $claim;
  }
  $this
    ->assertSame($this->queue
    ->claimItemMultiple(5, 3600), []);
  $this
    ->assertSame($this->queue
    ->releaseItemMultiple($claims), []);
  $claims = $this->queue
    ->claimItemMultiple(5, 3600);
  $this
    ->assertSame(count($claims), 5);
  foreach ($claims as $i => $claim) {
    $this
      ->assertEquals(9, $claim->data);
  }
  $this->queue
    ->deleteQueue();
}