public function testAfterInitialize() { $productMock = $this->getProductMock(); $configurableMatrix = [['newProduct' => true, 'id' => 'product1'], ['newProduct' => false, 'id' => 'product2', 'status' => 'simple2_status', 'sku' => 'simple2_sku', 'name' => 'simple2_name', 'price' => '3.33', 'configurable_attribute' => 'simple2_configurable_attribute', 'weight' => '5.55', 'media_gallery' => 'simple2_media_gallery', 'swatch_image' => 'simple2_swatch_image', 'small_image' => 'simple2_small_image', 'thumbnail' => 'simple2_thumbnail', 'image' => 'simple2_image'], ['newProduct' => false, 'id' => 'product3', 'qty' => '3']]; $configurations = ['product2' => ['status' => 'simple2_status', 'sku' => 'simple2_sku', 'name' => 'simple2_name', 'price' => '3.33', 'configurable_attribute' => 'simple2_configurable_attribute', 'weight' => '5.55', 'media_gallery' => 'simple2_media_gallery', 'swatch_image' => 'simple2_swatch_image', 'small_image' => 'simple2_small_image', 'thumbnail' => 'simple2_thumbnail', 'image' => 'simple2_image'], 'product3' => ['quantity_and_stock_status' => ['qty' => '3']]]; /** @var Product[]|\PHPUnit_Framework_MockObject_MockObject[] $productMocks */ $productMocks = ['product2' => $this->getProductMock($configurations['product2'], true), 'product3' => $this->getProductMock($configurations['product3'])]; $this->requestMock->expects(static::any())->method('getParam')->willReturnMap([['store', 0, 0], ['configurable-matrix', [], $configurableMatrix]]); $this->variationHandlerMock->expects(static::once())->method('duplicateImagesForVariations')->with($configurations)->willReturn($configurations); $this->productRepositoryMock->expects(static::any())->method('getById')->willReturnMap([['product2', false, 0, false, $productMocks['product2']], ['product3', false, 0, false, $productMocks['product3']]]); $this->variationHandlerMock->expects(static::any())->method('processMediaGallery')->willReturnMap([[$productMocks['product2'], $configurations['product2'], $configurations['product2']], [$productMocks['product3'], $configurations['product3'], $configurations['product3']]]); $this->assertSame($productMock, $this->updateConfigurations->afterInitialize($this->subjectMock, $productMock)); }
/** * @covers Configurable::afterInitialize */ public function testAfterInitializeForNotConfigurableProduct() { $this->product->expects(static::once())->method('getTypeId')->willReturn('non-configurable'); $this->product->expects(static::never())->method('getExtensionAttributes'); $this->request->expects(static::once())->method('getPost'); $this->variationHandler->expects(static::never())->method('generateSimpleProducts'); $this->plugin->afterInitialize($this->subject, $this->product); }