function testCreateFileDbEntryMovedFile()
 {
     // Create toto.txt in the release directory
     mkdir($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456');
     touch($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456/toto.txt');
     touch($GLOBALS['ftp_incoming_dir'] . '/toto.txt');
     $p = new MockProject();
     $p->setReturnValue('getUnixName', 'prj');
     $r = new FRSRelease();
     $r->setReleaseID(456);
     $r->setPackageID(123);
     $r->setProject($p);
     $f = new FRSFile();
     $f->setFileName('toto.txt');
     $f->setRelease($r);
     $f->setFileLocation($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456');
     $ff = new FRSFileFactoryTestCreateFiles();
     $ff->setReturnValue('moveFileForge', True);
     $ff->setReturnValue('create', False);
     try {
         $ff->createFile($f, ~FRSFileFactory::COMPUTE_MD5);
     } catch (Exception $e) {
         $this->assertIsA($e, 'FRSFileDbException');
     }
     //Cleanup
     unlink($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456/toto.txt');
     unlink($GLOBALS['ftp_incoming_dir'] . '/toto.txt');
     rmdir($GLOBALS['ftp_frs_dir_prefix'] . '/prj/p123_r456');
 }
 private function importRelease(Project $project, FRSPackage $package, SimpleXMLElement $xml_rel, $extraction_path)
 {
     $user = $this->user_finder->getUser($xml_rel->user);
     $attrs = $xml_rel->attributes();
     $release = new FRSRelease();
     $release->setProject($project);
     $release->setReleaseDate(strtotime($attrs['time']));
     $release->setName((string) $attrs['name']);
     $release->setStatusID(FRSRelease::STATUS_ACTIVE);
     $release->setPackageID($package->getPackageID());
     $release->setNotes((string) $xml_rel->notes);
     $release->setChanges((string) $xml_rel->changes);
     $release->setPreformatted($attrs['preformatted'] == '1' || $attrs['preformatted'] == 'true');
     $release->setReleasedBy($user->getId());
     $release->setReleaseID($this->release_factory->create($release->toArray()));
     $read_perms = array();
     foreach ($xml_rel->{'read-access'} as $perm) {
         $ugroup_name = (string) $perm->ugroup;
         $ugroup = $this->getUGroupManager()->getUGroupByName($project, $ugroup_name);
         $read_perms[] = $ugroup->getId();
     }
     $this->getPermissionsManager()->savePermissions($project, $release->getReleaseID(), FRSRelease::PERM_READ, $read_perms);
     foreach ($xml_rel->xpath('file') as $xml_file) {
         $this->importFile($project, $release, $user, $xml_file, $extraction_path);
     }
 }