/**
  * @test
  */
 public function updates()
 {
     $resource = Resource::create(['id' => 'xoo-xoo-xoo']);
     $res = $this->op->create($resource, ROOT_TESTS . '/data/self-lussing-manatee.jpg');
     $this->assertSame($res, $resource);
     $this->assertNotFalse($this->op->find($res->getId()));
     $this->assertNotFalse($this->filelib->getStorage()->exists($resource));
     $this->op->update($res);
     $this->ed->dispatch(Events::RESOURCE_BEFORE_UPDATE, Argument::type('Xi\\Filelib\\Event\\ResourceEvent'))->shouldHaveBeenCalled();
     $this->ed->dispatch(Events::RESOURCE_AFTER_UPDATE, Argument::type('Xi\\Filelib\\Event\\ResourceEvent'))->shouldHaveBeenCalled();
 }
示例#2
0
 /**
  * Deletes a file
  *
  * @param File $file
  */
 public function delete(File $file)
 {
     $event = new FileEvent($file);
     $this->eventDispatcher->dispatch(Events::FILE_BEFORE_DELETE, $event);
     $this->backend->deleteFile($file);
     $file->setStatus(File::STATUS_DELETED);
     if ($file->getResource()->isExclusive()) {
         $this->resourceRepository->delete($file->getResource());
     }
     $event = new FileEvent($file);
     $this->eventDispatcher->dispatch(Events::FILE_AFTER_DELETE, $event);
     return true;
 }
示例#3
0
 /**
  * Handles impostor's resource
  *
  * @param File $file
  */
 private function handleImpostorResource(File $file)
 {
     $oldResource = $file->getResource();
     if ($oldResource->isExclusive()) {
         $retrieved = $this->storage->retrieve($oldResource);
         $resource = Resource::create();
         $resource->setDateCreated(new DateTime());
         $resource->setHash($oldResource->getHash());
         $resource->setSize($oldResource->getSize());
         $resource->setMimetype($oldResource->getMimetype());
         $this->resourceRepository->create($resource, $retrieved);
         $file->setResource($resource);
     }
 }