_removeCacheDir($tmpDir); mkdir($tmpDir); $this->cacheDir = $tmpDir; } protected function _removeCacheDir($dir) { if (!file_exists($dir)) { return true; } if (!is_dir($dir) || is_link($dir)) { return unlink($dir); } foreach (scandir($dir) as $item) { if ($item == '.' || $item == '..') { continue; } $this->_removeCacheDir($dir . '/' . $item); } return rmdir($dir); } /** * Retrieve memory manager * */ private function _getMemoryManager() { if ($this->_memoryManager === null) { $backendOptions = array('cache_dir' => $this->cacheDir); // Directory where to put the cache files $this->_memoryManager = Zend_Memory::factory('File', $backendOptions); } return $this->_memoryManager; } /** * tests the Movable memory container object creation */ public function testCreation() { $memoryManager = $this->_getMemoryManager(); $memObject = $memoryManager->create('012345678'); $this->assertTrue($memObject instanceof Zend_Memory_AccessController); } /** * tests the value access methods */ public function testValueAccess() { $memoryManager = $this->_getMemoryManager(); $memObject = $memoryManager->create('0123456789'); // getRef() method $this->assertEquals($memObject->getRef(), '0123456789'); $valueRef = &$memObject->getRef(); $valueRef[3] = '_'; $this->assertEquals($memObject->getRef(), '012_456789'); if (version_compare(PHP_VERSION, '5.2') < 0) { // Skip next tests for PHP versions before 5.2 return; } // value property $this->assertEquals((string)$memObject->value, '012_456789'); $memObject->value[7] = '_'; $this->assertEquals((string)$memObject->value, '012_456_89'); $memObject->value = 'another value'; $this->assertTrue($memObject->value instanceof Zend_Memory_Value); $this->assertEquals((string)$memObject->value, 'another value'); } /** * tests lock()/unlock()/isLocked() functions */ public function testLock() { $memoryManager = $this->_getMemoryManager(); $memObject = $memoryManager->create('012345678'); $this->assertFalse((boolean)$memObject->isLocked()); $memObject->lock(); $this->assertTrue((boolean)$memObject->isLocked()); $memObject->unlock(); $this->assertFalse((boolean)$memObject->isLocked()); } } if (PHPUnit_MAIN_METHOD == 'Zend_Memory_AccessControllerTest::main') { Zend_Memory_AccessControllerTest::main(); }