/** * @dataProvider dataForExecute */ public function testExecute($fileResult, $expectedResult) { $this->uploaderFactoryMock->expects($this->once())->method('create')->willReturn($this->uploaderMock); $this->adapterFactoryMock->expects($this->once())->method('create')->willReturn($this->adapterMock); $this->filesystemMock ->expects($this->once()) ->method('getDirectoryRead') ->with('media') ->willReturn($this->mediaDirectoryMock); $this->uploaderMock->expects($this->once())->method('save')->willReturn($fileResult); $this->configMock ->expects($this->once()) ->method('getTmpMediaUrl') ->with($fileResult['file']) ->willReturn('http://domain.com/tpm_dir/m/a/magento.png'); $this->swatchHelperMock ->expects($this->once()) ->method('moveImageFromTmp') ->with('/m/a/magento.png.tmp') ->willReturn('/m/a/magento.png'); $this->swatchHelperMock->expects($this->once())->method('generateSwatchVariations'); $this->swatchHelperMock ->expects($this->once()) ->method('getSwatchMediaUrl') ->willReturn('http://domain.com/media/path/'); $this->responseMock->expects($this->once())->method('setBody')->willReturn(json_encode($expectedResult)); $this->controller->executeInternal(); }
public function testExecuteNullProduct() { $this->productMock ->expects($this->once()) ->method('load') ->with(59) ->willReturn($this->productMock); $this->productModelFactoryMock ->expects($this->once()) ->method('create') ->willReturn($this->productMock); $this->swatchHelperMock ->expects($this->once()) ->method('getAttributesFromConfigurable') ->with($this->productMock) ->willReturn([$this->attributeMock]); $this->swatchHelperMock ->expects($this->once()) ->method('loadVariationByFallback') ->with($this->productMock, ['size' => 454]) ->willReturn(null); $this->swatchHelperMock ->expects($this->once()) ->method('getProductMediaGallery') ->with($this->productMock) ->willReturn($this->mediaGallery); $this->jsonMock ->expects($this->once()) ->method('setData') ->with($this->mediaGallery) ->will($this->returnSelf()); $result = $this->controller->executeInternal(); $this->assertInstanceOf('\Magento\Framework\Controller\Result\Json', $result); }