1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?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);
- }
- }
|