1
0
mirror of synced 2025-01-06 00:57:10 +03:00
doctrine2/tests/Doctrine/Tests/ORM/Cache/AbstractRegionTest.php
2013-12-16 11:05:04 -05:00

85 lines
2.2 KiB
PHP

<?php
namespace Doctrine\Tests\ORM\Cache;
use Doctrine\Tests\OrmFunctionalTestCase;
use Doctrine\Tests\Mocks\CacheEntryMock;
use Doctrine\Tests\Mocks\CacheKeyMock;
use Doctrine\Common\Cache\ArrayCache;
/**
* @group DDC-2183
*/
abstract class AbstractRegionTest extends OrmFunctionalTestCase
{
/**
* @var \Doctrine\ORM\Cache\Region
*/
protected $region;
/**
* @var \Doctrine\Common\Cache\ArrayCache
*/
protected $cache;
protected function setUp()
{
parent::setUp();
$this->cache = new ArrayCache();
$this->region = $this->createRegion();
}
/**
* @return \Doctrine\ORM\Cache\Region
*/
protected abstract function createRegion();
static public function dataProviderCacheValues()
{
return array(
array(new CacheKeyMock('key.1'), new CacheEntryMock(array('id'=>1, 'name' => 'bar'))),
array(new CacheKeyMock('key.2'), new CacheEntryMock(array('id'=>2, 'name' => 'foo'))),
);
}
/**
* @dataProvider dataProviderCacheValues
*/
public function testPutGetContainsEvict($key, $value)
{
$this->assertFalse($this->region->contains($key));
$this->region->put($key, $value);
$this->assertTrue($this->region->contains($key));
$actual = $this->region->get($key);
$this->assertEquals($value, $actual);
$this->region->evict($key);
$this->assertFalse($this->region->contains($key));
}
public function testEvictAll()
{
$key1 = new CacheKeyMock('key.1');
$key2 = new CacheKeyMock('key.2');
$this->assertFalse($this->region->contains($key1));
$this->assertFalse($this->region->contains($key2));
$this->region->put($key1, new CacheEntryMock(array('value' => 'foo')));
$this->region->put($key2, new CacheEntryMock(array('value' => 'bar')));
$this->assertTrue($this->region->contains($key1));
$this->assertTrue($this->region->contains($key2));
$this->region->evictAll();
$this->assertFalse($this->region->contains($key1));
$this->assertFalse($this->region->contains($key2));
}
}