You are here

public function TxBufferTest::testSetAndGetProperty in Purge 8.3

Tests TxBuffer::setProperty and TxBuffer::getProperty.

File

tests/src/Kernel/Queue/TxBufferTest.php, line 140

Class

TxBufferTest
Tests \Drupal\purge\Tests\Queue\TxBufferTest.

Namespace

Drupal\Tests\purge\Kernel\Queue

Code

public function testSetAndGetProperty() : void {
  $i = $this
    ->getInvalidations(1);

  // Assert that setting/getting properties on unbuffered objects won't work.
  $this
    ->assertNull($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop'));
  $this
    ->assertFalse($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop', FALSE));
  $this->purgeQueueTxbuffer
    ->setProperty($i, 'prop', 'value');
  $this
    ->assertNull($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop'));

  // Assert that once buffered, it all does work.
  $this->purgeQueueTxbuffer
    ->set($i, TxBufferInterface::CLAIMED);
  $this
    ->assertNull($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop'));
  $this
    ->assertFalse($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop', FALSE));
  $this->purgeQueueTxbuffer
    ->setProperty($i, 'prop', 'value');
  $this
    ->assertEquals('value', $this->purgeQueueTxbuffer
    ->getProperty($i, 'prop'));
  $this->purgeQueueTxbuffer
    ->setProperty($i, 'prop', 5.5);
  $this
    ->assertEquals(5.5, $this->purgeQueueTxbuffer
    ->getProperty($i, 'prop'));
  $this->purgeQueueTxbuffer
    ->setProperty($i, 'prop', [
    1,
  ]);
  $this
    ->assertTrue(is_array($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop')));
  $this
    ->assertTrue(current($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop')) === 1);
  $this->purgeQueueTxbuffer
    ->delete($i);
  $this
    ->assertNull($this->purgeQueueTxbuffer
    ->getProperty($i, 'prop'));
}