You are here

public function PhpFileCacheTest::testLifetime in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PhpFileCacheTest.php \Doctrine\Tests\Common\Cache\PhpFileCacheTest::testLifetime()

File

vendor/doctrine/cache/tests/Doctrine/Tests/Common/Cache/PhpFileCacheTest.php, line 13

Class

PhpFileCacheTest
@group DCOM-101

Namespace

Doctrine\Tests\Common\Cache

Code

public function testLifetime() {
  $cache = $this
    ->_getCacheDriver();

  // Test save
  $cache
    ->save('test_key', 'testing this out', 10);

  // Test contains to test that save() worked
  $this
    ->assertTrue($cache
    ->contains('test_key'));

  // Test fetch
  $this
    ->assertEquals('testing this out', $cache
    ->fetch('test_key'));

  // access private methods
  $getFilename = new \ReflectionMethod($cache, 'getFilename');
  $getNamespacedId = new \ReflectionMethod($cache, 'getNamespacedId');
  $getFilename
    ->setAccessible(true);
  $getNamespacedId
    ->setAccessible(true);
  $id = $getNamespacedId
    ->invoke($cache, 'test_key');
  $path = $getFilename
    ->invoke($cache, $id);
  $value = (include $path);

  // update lifetime
  $value['lifetime'] = $value['lifetime'] - 20;
  file_put_contents($path, '<?php return unserialize(' . var_export(serialize($value), true) . ');');

  // test expired data
  $this
    ->assertFalse($cache
    ->contains('test_key'));
  $this
    ->assertFalse($cache
    ->fetch('test_key'));
}