/** * Returns file-based cache storage. * * @param string $name Cache name. * @param integer $duration Duration in seconds. * * @return ICacheStorage * @throws \InvalidArgumentException When namespace is missing in the name. */ private function _getStorage($name, $duration = null) { $name_parts = explode(':', $name, 2); if (count($name_parts) != 2) { throw new \InvalidArgumentException('The $name parameter must be in "namespace:name" format.'); } $filename_parts = array($name_parts[0], substr(hash_hmac('sha1', $name_parts[1], 'svn-buddy'), 0, 8), 'D' . (isset($duration) ? $duration : 'INF')); $cache_filename = $this->_workingDirectory . DIRECTORY_SEPARATOR . implode('_', $filename_parts) . '.cache'; if (isset($this->_io) && $this->_io->isVerbose()) { $message = $cache_filename; if (file_exists($cache_filename)) { $message .= ' (hit: ' . $this->_sizeHelper->formatSize(filesize($cache_filename)) . ')'; } else { $message .= ' (miss)'; } $this->_io->writeln(array('', '<debug>[cache]: ' . $message . '</debug>')); } return new FileCacheStorage($cache_filename); }
public function testGetName() { $this->assertEquals('size', $this->sizeHelper->getName()); }