You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.2 KiB

<?php
/*
* @copyright NetMonsters <team@netmonsters.ru>
* @link http://netmonsters.ru
* @package Majestic
* @subpackage UnitTests
* @since 2011-10-14
*
* Unit tests for CacheKey class
*/
/**
* @TODO: CacheKey->getExpire() method never used
*/
require_once dirname(__FILE__) . '/../../cache/Cache.php';
require_once dirname(__FILE__) . '/../../cache/CacheKey.php';
class CacheKeyTest extends PHPUnit_Framework_TestCase
{
private $cache;
public function testConstructor()
{
$mock = $this->getMock('Cache');
$cache = new CacheKey($mock, 'anything', array('one', 'two', 'three'),200);
$this->assertAttributeEquals('anything_one|two|three', 'key', $cache);
}
public function testExpire()
{
$this->cache = new CacheKey($this->getMock('Cache'), 'key');
$this->assertAttributeEquals(0, 'expire', $this->cache);
$this->cache->setExpire(20);
$this->assertAttributeEquals(20, 'expire', $this->cache);
}
public function testGetExpire()
{
$this->cache = new CacheKey(null, 'key');
$this->cache->setExpire(100);
$getExpireMethod = new ReflectionMethod('CacheKey', 'getExpire');
$getExpireMethod->setAccessible(TRUE);
$this->assertSame(100, $getExpireMethod->invoke($this->cache));
}
public function testGetSet()
{
$mockCacher = $this->getMock('Cache');
$mockCacher->expects($this->any())
->method('set')
->with('any', 'some', 0);
$mockCacher->expects($this->any())
->method('get')
->with('any')
->will($this->returnValue('some'));
$this->cache = new CacheKey($mockCacher, 'any');
$this->cache->set('some');
$this->assertSame('some', $this->cache->get());
}
public function testDel()
{
$mockCacher = $this->getMock('Cacher', array('del'));
$mockCacher->expects($this->any())
->method('del')
->with('some')
->will($this->returnValue(true));
$cache = new CacheKey($mockCacher, 'some');
$this->assertTrue($cache->del());
}
}