CachedReaderTest.php

Namespace

Doctrine\Tests\Common\Annotations

File

drupal/core/vendor/doctrine/common/tests/Doctrine/Tests/Common/Annotations/CachedReaderTest.php
View source
<?php

namespace Doctrine\Tests\Common\Annotations;

use Doctrine\Tests\Common\Annotations\Fixtures\Annotation\Route;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\Common\Annotations\CachedReader;
use Doctrine\Common\Cache\ArrayCache;
class CachedReaderTest extends AbstractReaderTest {
  private $cache;
  public function testIgnoresStaleCache() {
    $file = __DIR__ . '/Fixtures/Controller.php';
    touch($file);
    $name = 'Doctrine\\Tests\\Common\\Annotations\\Fixtures\\Controller';
    $cacheKey = $name . '@[Annot]';
    $cache = $this
      ->getMock('Doctrine\\Common\\Cache\\Cache');
    $cache
      ->expects($this
      ->at(0))
      ->method('fetch')
      ->with($this
      ->equalTo($cacheKey))
      ->will($this
      ->returnValue(array()));
    $cache
      ->expects($this
      ->at(1))
      ->method('fetch')
      ->with($this
      ->equalTo('[C]' . $cacheKey))
      ->will($this
      ->returnValue(time() - 10));
    $cache
      ->expects($this
      ->at(2))
      ->method('save')
      ->with($this
      ->equalTo($cacheKey));
    $cache
      ->expects($this
      ->at(3))
      ->method('save')
      ->with($this
      ->equalTo('[C]' . $cacheKey));
    $reader = new CachedReader(new AnnotationReader(), $cache, true);
    $route = new Route();
    $route->pattern = '/someprefix';
    $this
      ->assertEquals(array(
      $route,
    ), $reader
      ->getClassAnnotations(new \ReflectionClass($name)));
  }
  protected function getReader() {
    $this->cache = new ArrayCache();
    return new CachedReader(new AnnotationReader(), $this->cache);
  }

}

Classes

Namesort descending Description
CachedReaderTest