public function testCreate()
{
$path = $this->getRootDir() . '/images/dummy.jpg';
$imageMock = $this->getMockBuilder('Contao\\Image\\Image')->disableOriginalConstructor()->getMock();
$resizer = $this->getMockBuilder('Contao\\Image\\Resizer')->disableOriginalConstructor()->getMock();
$resizer->expects($this->exactly(2))->method('resize')->with($this->callback(function ($image) use(&$path) {
/* @var Image $image */
$this->assertEquals($path, $image->getPath());
return true;
}), $this->callback(function ($config) {
/* @var ResizeConfiguration $config */
$this->assertEquals(100, $config->getWidth());
$this->assertEquals(200, $config->getHeight());
$this->assertEquals(ResizeConfiguration::MODE_BOX, $config->getMode());
return true;
}))->willReturn($imageMock);
$framework = $this->getMockBuilder('Contao\\CoreBundle\\Framework\\ContaoFramework')->disableOriginalConstructor()->getMock();
$filesModel = $this->getMock('Contao\\FilesModel');
$filesModel->expects($this->any())->method('__get')->willReturn(null);
$filesAdapter = $this->getMockBuilder('Contao\\CoreBundle\\Framework\\Adapter')->disableOriginalConstructor()->getMock();
$filesAdapter->expects($this->any())->method('__call')->willReturn($filesModel);
$framework->expects($this->any())->method('getAdapter')->willReturn($filesAdapter);
$imageFactory = $this->createImageFactory($resizer, null, null, null, $framework);
$image = $imageFactory->create($path, [100, 200, ResizeConfiguration::MODE_BOX]);
$this->assertSame($imageMock, $image);
$path = $this->getRootDir() . '/assets/images/dummy.svg';
if (!file_exists(dirname($path))) {
mkdir(dirname($path), 0777, true);
}
file_put_contents($path, '');
$image = $imageFactory->create($path, [100, 200, ResizeConfiguration::MODE_BOX]);
$this->assertSame($imageMock, $image);
}