56 lines
1.7 KiB
PHP
56 lines
1.7 KiB
PHP
<?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);
|
|
}
|
|
} |