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.
75 lines
2.0 KiB
75 lines
2.0 KiB
<?php |
|
/** |
|
* @link http://www.yiiframework.com/ |
|
* @copyright Copyright (c) 2008 Yii Software LLC |
|
* @license http://www.yiiframework.com/license/ |
|
*/ |
|
|
|
namespace yiiunit\framework\caching; |
|
|
|
use yii\caching\ArrayCache; |
|
|
|
/** |
|
* Class for testing file cache backend. |
|
* @group caching |
|
*/ |
|
class ArrayCacheTest extends CacheTestCase |
|
{ |
|
private $_cacheInstance = null; |
|
|
|
/** |
|
* @return ArrayCache |
|
*/ |
|
protected function getCacheInstance() |
|
{ |
|
if ($this->_cacheInstance === null) { |
|
$this->_cacheInstance = new ArrayCache(); |
|
} |
|
|
|
return $this->_cacheInstance; |
|
} |
|
|
|
public function testExpire() |
|
{ |
|
$cache = $this->getCacheInstance(); |
|
|
|
static::$microtime = \microtime(true); |
|
$this->assertTrue($cache->set('expire_test', 'expire_test', 2)); |
|
static::$microtime++; |
|
$this->assertEquals('expire_test', $cache->get('expire_test')); |
|
static::$microtime++; |
|
$this->assertFalse($cache->get('expire_test')); |
|
} |
|
|
|
public function testExpireAdd() |
|
{ |
|
$cache = $this->getCacheInstance(); |
|
|
|
static::$microtime = \microtime(true); |
|
$this->assertTrue($cache->add('expire_testa', 'expire_testa', 2)); |
|
static::$microtime++; |
|
$this->assertEquals('expire_testa', $cache->get('expire_testa')); |
|
static::$microtime++; |
|
$this->assertFalse($cache->get('expire_testa')); |
|
} |
|
|
|
/** |
|
* @see https://github.com/yiisoft/yii2/issues/16028 |
|
*/ |
|
public function testSerializationOfComplexKeysThatContainNonUTFSequences() |
|
{ |
|
$cache = $this->getCacheInstance(); |
|
|
|
$firstCacheKey = $cache->buildKey([ |
|
"First example of invalid UTF-8 sequence: \xF5", |
|
"Valid UTF-8 string", |
|
]); |
|
|
|
$secondCacheKey = $cache->buildKey([ |
|
"Second example of invalid UTF-8 sequence: \xF6", |
|
"Valid UTF-8 string", |
|
]); |
|
|
|
$this->assertNotEquals($firstCacheKey, $secondCacheKey); |
|
} |
|
}
|
|
|