/**
  * 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());
 }