getTmpDir()); $this->_cache_dir = $this->getTmpDir() . DIRECTORY_SEPARATOR; $slowBackend = 'File'; $fastBackend = 'Apc'; $slowBackendOptions = array( 'cache_dir' => $this->_cache_dir ); $fastBackendOptions = array( ); $this->_instance = new Zend_Cache_Backend_TwoLevels(array( 'fast_backend' => $fastBackend, 'slow_backend' => $slowBackend, 'fast_backend_options' => $fastBackendOptions, 'slow_backend_options' => $slowBackendOptions )); parent::setUp($notag); } public function tearDown() { parent::tearDown(); unset($this->_instance); } public function testConstructorCorrectCall() { $slowBackend = 'File'; $fastBackend = 'Apc'; $slowBackendOptions = array( 'cache_dir' => $this->_cache_dir ); $fastBackendOptions = array( ); $test = new Zend_Cache_Backend_TwoLevels(array( 'fast_backend' => $fastBackend, 'slow_backend' => $slowBackend, 'fast_backend_options' => $fastBackendOptions, 'slow_backend_options' => $slowBackendOptions )); } public function testSaveOverwritesIfFastIsFull() { $slowBackend = 'File'; $fastBackend = $this->getMock('Zend_Cache_Backend_Apc', array('getFillingPercentage')); $fastBackend->expects($this->at(0)) ->method('getFillingPercentage') ->will($this->returnValue(0)); $fastBackend->expects($this->at(1)) ->method('getFillingPercentage') ->will($this->returnValue(90)); $slowBackendOptions = array( 'cache_dir' => $this->_cache_dir ); $cache = new Zend_Cache_Backend_TwoLevels(array( 'fast_backend' => $fastBackend, 'slow_backend' => $slowBackend, 'slow_backend_options' => $slowBackendOptions, 'stats_update_factor' => 1 )); $id = 'test'.uniqid(); $this->assertTrue($cache->save(10, $id)); //fast usage at 0% $this->assertTrue($cache->save(100, $id)); //fast usage at 90% $this->assertEquals(100, $cache->load($id)); } /** * @group ZF-9855 */ public function testSaveReturnsTrueIfFastIsFullOnFirstSave() { $slowBackend = 'File'; $fastBackend = $this->getMock('Zend_Cache_Backend_Apc', array('getFillingPercentage')); $fastBackend->expects($this->any()) ->method('getFillingPercentage') ->will($this->returnValue(90)); $slowBackendOptions = array( 'cache_dir' => $this->_cache_dir ); $cache = new Zend_Cache_Backend_TwoLevels(array( 'fast_backend' => $fastBackend, 'slow_backend' => $slowBackend, 'slow_backend_options' => $slowBackendOptions, 'stats_update_factor' => 1 )); $id = 'test'.uniqid(); $this->assertTrue($cache->save(90, $id)); //fast usage at 90%, failing for $this->assertEquals(90, $cache->load($id)); $this->assertTrue($cache->save(100, $id)); //fast usage at 90% $this->assertEquals(100, $cache->load($id)); } }