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.
		
		
		
		
		
			
		
			
				
					
					
						
							82 lines
						
					
					
						
							2.0 KiB
						
					
					
				
			
		
		
	
	
							82 lines
						
					
					
						
							2.0 KiB
						
					
					
				<?php | 
						|
namespace yiiunit\framework\caching; | 
						|
use yiiunit\TestCase; | 
						|
use yii\caching\Cache; | 
						|
 | 
						|
/** | 
						|
 * Base class for testing cache backends | 
						|
 */ | 
						|
abstract class CacheTest extends TestCase | 
						|
{ | 
						|
	/** | 
						|
	 * @return Cache | 
						|
	 */ | 
						|
	abstract protected function getCacheInstance(); | 
						|
 | 
						|
	public function testSet() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
		$cache->set('string_test', 'string_test'); | 
						|
		$cache->set('number_test', 42); | 
						|
		$cache->set('array_test', array('array_test' => 'array_test')); | 
						|
		$cache['arrayaccess_test'] = new \stdClass(); | 
						|
	} | 
						|
 | 
						|
	public function testGet() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
		$this->assertEquals('string_test', $cache->get('string_test')); | 
						|
 | 
						|
		$this->assertEquals(42, $cache->get('number_test')); | 
						|
 | 
						|
		$array = $cache->get('array_test'); | 
						|
		$this->assertArrayHasKey('array_test', $array); | 
						|
		$this->assertEquals('array_test', $array['array_test']); | 
						|
 | 
						|
		$this->assertInstanceOf('stdClass', $cache['arrayaccess_test']); | 
						|
	} | 
						|
 | 
						|
	public function testMget() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
		$this->assertEquals(array('string_test' => 'string_test', 'number_test' => 42), $cache->mget(array('string_test', 'number_test'))); | 
						|
	} | 
						|
 | 
						|
	public function testExpire() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
		$cache->set('expire_test', 'expire_test', 2); | 
						|
		sleep(1); | 
						|
		$this->assertEquals('expire_test', $cache->get('expire_test')); | 
						|
		sleep(2); | 
						|
		$this->assertEquals(false, $cache->get('expire_test')); | 
						|
	} | 
						|
 | 
						|
	public function testAdd() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
 | 
						|
		// should not change existing keys | 
						|
		$cache->add('number_test', 13); | 
						|
		$this->assertEquals(42, $cache->get('number_test')); | 
						|
 | 
						|
		// should store data is it's not there yet | 
						|
		$cache->add('add_test', 13); | 
						|
		$this->assertEquals(13, $cache->get('add_test')); | 
						|
	} | 
						|
 | 
						|
	public function testDelete() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
 | 
						|
		$cache->delete('number_test'); | 
						|
		$this->assertEquals(null, $cache->get('number_test')); | 
						|
	} | 
						|
 | 
						|
	public function testFlush() | 
						|
	{ | 
						|
		$cache = $this->getCacheInstance(); | 
						|
		$cache->flush(); | 
						|
		$this->assertEquals(null, $cache->get('add_test')); | 
						|
	} | 
						|
}
 | 
						|
 |