public function testStorage()
 {
     $f = __DIR__ . '/dummy-file.txt';
     $data = self::$storage->storeFile($f, 'test.txt', 'plain/text');
     $this->assertEquals(array('name' => 'test.txt', 'size' => 5, 'extension' => 'txt', 'mime' => 'plain/text'), $data);
     $data = self::$storage->storeFile($f, 'test2.axc', 'plain/text');
     $this->assertEquals(array('name' => 'test2.axc', 'size' => 5, 'extension' => 'axc', 'mime' => 'plain/text'), $data);
     $data = self::$storage->storeFile($f, 'aloha/test.txt', 'plain/text');
     $this->assertEquals(array('name' => 'aloha/test.txt', 'size' => 5, 'extension' => 'txt', 'mime' => 'plain/text'), $data);
     $files = array();
     $dirs = array();
     /* @var SplFileInfo $f */
     foreach (new FilesystemIterator(__DIR__ . '/tmp-storage/') as $f) {
         if (is_dir($f->getRealPath())) {
             $dirs[] = basename($f->getRealPath());
         } else {
             $files[] = basename($f->getRealPath());
         }
     }
     $this->assertEquals(array('test.txt', 'test2.axc'), $files);
     $this->assertEquals(array('aloha'), $dirs);
     $this->assertTrue(file_exists(__DIR__ . '/tmp-storage/aloha/test.txt'));
     self::$storage->removeFile('aloha/test.txt');
     $this->assertFalse(file_exists(__DIR__ . '/tmp-storage/aloha/test.txt'));
 }
 /**
  * @param ObjectInterface $user
  * @param \Rocker\Object\User\UserFactory $factory
  * @param array $userFiles
  * @param \Rocker\Utils\FileStorage\StorageInterface $storage
  */
 protected static function deleteAllFiles(ObjectInterface $user, UserFactory $factory, $userFiles, $storage)
 {
     foreach ($userFiles as $f) {
         if (!empty($f['versions'])) {
             $storage->removeVersions($f['name'], $f['versions']);
         }
         $storage->removeFile($f['name']);
     }
     $user->meta()->delete('files');
     $factory->update($user);
 }