public function testReturnImage()
{
$mediaRepository = $this->prophesize('Sulu\\Bundle\\MediaBundle\\Entity\\MediaRepository');
$originalStorage = $this->prophesize('Sulu\\Bundle\\MediaBundle\\Media\\Storage\\StorageInterface');
$formatCache = $this->prophesize('Sulu\\Bundle\\MediaBundle\\Media\\FormatCache\\FormatCacheInterface');
$converter = $this->prophesize('Sulu\\Bundle\\MediaBundle\\Media\\ImageConverter\\ImageConverterInterface');
$videoThumbnailService = $this->prophesize('Sulu\\Bundle\\MediaBundle\\Media\\Video\\VideoThumbnailServiceInterface');
$ghostScriptPath = '';
$saveImage = true;
$previewMimeTypes = ['gif'];
$responseHeaders = [];
$formats = ['640x480' => ['name' => '640x480', 'commands' => [['action' => 'resize', 'parameters' => ['x' => 640, 'y' => 480]]], 'options' => ['jpeg_quality' => 70, 'png_compression_level' => 6]]];
$image = $this->prophesize('Imagine\\Image\\ImageInterface');
$image->strip()->willReturn(null);
$image->layers()->willReturn(null);
$image->interlace(ImageInterface::INTERLACE_PLANE)->willReturn(null);
$image->get('gif', $formats['640x480']['options'])->willReturn('Image-Content');
$media = new Media();
$reflection = new \ReflectionClass(get_class($media));
$property = $reflection->getProperty('id');
$property->setAccessible(true);
$property->setValue($media, 1);
$file = new File();
$file->setVersion(1);
$fileVersion = new FileVersion();
$fileVersion->setVersion(1);
$fileVersion->setName('dummy.gif');
$fileVersion->setMimeType('gif');
$fileVersion->setStorageOptions(['a' => 'b']);
$file->addFileVersion($fileVersion);
$media->addFile($file);
$mediaRepository->findMediaById(1)->willReturn($media);
$originalStorage->load('dummy.gif', 1, ['a' => 'b'])->willReturn(dirname(__DIR__) . '/../../Fixtures/image/data/dummy.gif');
$converter->convert(Argument::type('string'), $formats['640x480'])->willReturn($image->reveal());
$formatCache->save(Argument::type('string'), 1, 'dummy.gif', ['a' => 'b'], '640x480')->willReturn(null);
$formatManager = new FormatManager($mediaRepository->reveal(), $originalStorage->reveal(), $formatCache->reveal(), $converter->reveal(), $videoThumbnailService->reveal(), $ghostScriptPath, $saveImage, $previewMimeTypes, $responseHeaders, $formats);
$result = $formatManager->returnImage(1, '640x480');
$this->assertEquals('Image-Content', $result->getContent());
$this->assertEquals(200, $result->getStatusCode());
}