<?php require_once dirname(__FILE__).'/../phpunit.php'; Prado::using('System.Caching.TAPCCache'); /** * @package System.Caching */ class TAPCCacheTest extends PHPUnit_Framework_TestCase { protected $app = null; protected static $cache = null; protected function setUp() { if(!extension_loaded('apc')) { self::markTestSkipped('The APC extension is not available'); } else { $basePath = dirname(__FILE__).'/mockapp'; $runtimePath = $basePath.'/runtime'; if(!is_writable($runtimePath)) { self::markTestSkipped("'$runtimePath' is writable"); } try { $this->app = new TApplication($basePath); self::$cache = new TAPCCache(); self::$cache->init(null); } catch(TConfigurationException $e) { self::markTestSkipped($e->getMessage()); } } } protected function tearDown() { $this->app = null; self::$cache = null; } public function testInit() { throw new PHPUnit_Framework_IncompleteTestError(); } public function testPrimaryCache() { self::$cache->PrimaryCache = true; self::assertEquals(true, self::$cache->PrimaryCache); self::$cache->PrimaryCache = false; self::assertEquals(false, self::$cache->PrimaryCache); } public function testKeyPrefix() { self::$cache->KeyPrefix = 'prefix'; self::assertEquals('prefix', self::$cache->KeyPrefix); } public function testSetAndGet() { self::$cache->set('key', 'value'); self::assertEquals('value', self::$cache->get('key')); } public function testAdd() { try { self::$cache->add('anotherkey', 'value'); } catch(TNotSupportedException $e) { self::markTestSkipped('apc_add is not supported'); return; } self::assertEquals('value', self::$cache->get('anotherkey')); } public function testDelete() { self::$cache->delete('key'); self::assertEquals(false, self::$cache->get('key')); } public function testFlush() { $this->testSetAndGet(); self::assertEquals(true, self::$cache->flush()); } } ?>