Example #1
0
 public function testOnDelete()
 {
     /** @var CM_Model_StreamChannel_Media $streamChannel */
     $streamChannel = CMTest_TH::createStreamChannel();
     $archive = CMTest_TH::createStreamChannelVideoArchive($streamChannel, null, 'tempFileName.mp4');
     CM_StreamChannel_Thumbnail::create($archive->getId(), 1);
     CM_StreamChannel_Thumbnail::create($archive->getId(), 1);
     CM_StreamChannel_Thumbnail::create($archive->getId(), 1);
     $this->_createArchiveFiles($archive);
     /** @var CM_File_UserContent[] $thumbnailFiles */
     $thumbnailFiles = \Functional\map($archive->getThumbnails(), function (CM_StreamChannel_Thumbnail $thumbnail) {
         return $thumbnail->getFile();
     });
     $thumbnailDir = $thumbnailFiles[0]->getParentDirectory();
     $mediaFile = $archive->getFile();
     $this->assertCount(3, $archive->getThumbnails());
     foreach ($thumbnailFiles as $file) {
         $this->assertTrue($file->exists());
     }
     $this->assertTrue($thumbnailDir->exists());
     $this->assertTrue($mediaFile->exists());
     $archive->delete();
     foreach ($thumbnailFiles as $file) {
         $this->assertFalse($file->exists());
     }
     $this->assertFalse($thumbnailDir->exists());
     $this->assertFalse($mediaFile->exists());
     $this->assertCount(0, $archive->getThumbnails());
     $exception = $this->catchException(function () use($archive) {
         CMTest_TH::reinstantiateModel($archive);
     });
     $this->assertInstanceOf('CM_Exception_Nonexistent', $exception);
 }
Example #2
0
 public function testDelete()
 {
     $thumbnail = CM_StreamChannel_Thumbnail::create(1, 123);
     $file = $thumbnail->getFile();
     $file->ensureParentDirectory();
     $file->write('foo');
     $thumbnail->delete();
     $this->assertTrue($file->exists());
     // file only deleted by batch-delete on archive-delete
 }
Example #3
0
 public function testPaging()
 {
     /** @var CM_Model_StreamChannel_Media $streamChannel */
     $streamChannel = CMTest_TH::createStreamChannel();
     $archive = CMTest_TH::createStreamChannelVideoArchive($streamChannel);
     $this->assertEquals([], $archive->getThumbnails());
     $thumbnail1 = CM_StreamChannel_Thumbnail::create($archive->getId(), 2);
     $thumbnail2 = CM_StreamChannel_Thumbnail::create($archive->getId(), 1);
     $this->assertEquals([$thumbnail2, $thumbnail1], $archive->getThumbnails());
     $this->assertEquals([$thumbnail2, $thumbnail1], $streamChannel->getThumbnails());
     $thumbnail2->delete();
     $this->assertEquals([$thumbnail1], $archive->getThumbnails());
     $this->assertEquals([$thumbnail1], $streamChannel->getThumbnails());
     $thumbnail1->delete();
     $this->assertEquals([], $archive->getThumbnails());
     $this->assertEquals([], $streamChannel->getThumbnails());
 }
Example #4
0
 /**
  * @param string  $streamChannelMediaId
  * @param CM_File $thumbnailSource
  * @param int     $createStamp
  * @throws CM_Exception
  * @throws CM_Exception_Invalid
  */
 public function importVideoThumbnail($streamChannelMediaId, CM_File $thumbnailSource, $createStamp)
 {
     $streamChannelMediaId = (string) $streamChannelMediaId;
     $createStamp = (int) $createStamp;
     if ($streamChannel = CM_Model_StreamChannel_Media::findByMediaId($streamChannelMediaId)) {
         $channelId = $streamChannel->getId();
     } elseif ($streamChannelArchive = CM_Model_StreamChannelArchive_Media::findByMediaId($streamChannelMediaId)) {
         $channelId = $streamChannelArchive->getId();
     } else {
         throw new CM_Exception_Invalid('No streamchannel or archive found', null, ['streamChannelMediaId' => $streamChannelMediaId]);
     }
     $thumbnail = CM_StreamChannel_Thumbnail::create($channelId, $createStamp);
     $thumbnailDestination = $thumbnail->getFile();
     try {
         $thumbnailDestination->ensureParentDirectory();
         $thumbnailSource->copyToFile($thumbnailDestination);
     } catch (CM_Exception $ex) {
         $thumbnail->delete();
         throw $ex;
     }
 }