public function GenericCacheBackendUnitTestBase::testSetGet

Tests the get and set methods of Drupal\Core\Cache\CacheBackendInterface.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Cache/GenericCacheBackendUnitTestBase.php, line 136
Definition of Drupal\system\Tests\Cache\GenericCacheBackendUnitTestBase.

Class

GenericCacheBackendUnitTestBase
Tests any cache backend.

Namespace

Drupal\system\Tests\Cache

Code

public function testSetGet() {
  $backend = $this
    ->getCacheBackend();
  $this
    ->assertIdentical(FALSE, $backend
    ->get('test1'), "Backend does not contain data for cache id test1.");
  $backend
    ->set('test1', 7);
  $cached = $backend
    ->get('test1');
  $this
    ->assert(is_object($cached), "Backend returned an object for cache id test1.");
  $this
    ->assertIdentical(7, $cached->data);
  $this
    ->assertTrue($cached->valid, 'Item is marked as valid.');
  $this
    ->assertEqual($cached->created, REQUEST_TIME, 'Created time is correct.');
  $this
    ->assertEqual($cached->expire, CacheBackendInterface::CACHE_PERMANENT, 'Expire time is correct.');
  $this
    ->assertIdentical(FALSE, $backend
    ->get('test2'), "Backend does not contain data for cache id test2.");
  $backend
    ->set('test2', array(
    'value' => 3,
  ), REQUEST_TIME + 3);
  $cached = $backend
    ->get('test2');
  $this
    ->assert(is_object($cached), "Backend returned an object for cache id test2.");
  $this
    ->assertIdentical(array(
    'value' => 3,
  ), $cached->data);
  $this
    ->assertTrue($cached->valid, 'Item is marked as valid.');
  $this
    ->assertEqual($cached->created, REQUEST_TIME, 'Created time is correct.');
  $this
    ->assertEqual($cached->expire, REQUEST_TIME + 3, 'Expire time is correct.');
  $backend
    ->set('test3', 'foobar', REQUEST_TIME - 3);
  $this
    ->assertFalse($backend
    ->get('test3'), 'Invalid item not returned.');
  $cached = $backend
    ->get('test3', TRUE);
  $this
    ->assert(is_object($cached), 'Backend returned an object for cache id test3.');
  $this
    ->assertFalse($cached->valid, 'Item is marked as valid.');
  $this
    ->assertEqual($cached->created, REQUEST_TIME, 'Created time is correct.');
  $this
    ->assertEqual($cached->expire, REQUEST_TIME - 3, 'Expire time is correct.');
}