85 lines
2.2 KiB
PHP
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));
|
|
}
|
|
} |