public function testDisallowModifyData() { $data = ['some data']; $this->productMock->expects(static::any())->method('getTypeId')->willReturn(ConfigurableType::TYPE_CODE); $this->allowedProductTypesMock->expects(static::once())->method('isAllowedProductType')->with($this->productMock)->willReturn(false); $this->productMock->expects(static::never())->method('getId'); $this->associatedProductsMock->expects(static::never())->method('getProductMatrix'); $this->associatedProductsMock->expects(static::never())->method('getProductAttributesIds'); $this->associatedProductsMock->expects(static::never())->method('getProductAttributesCodes'); $this->assertSame($data, $this->createCompositeModifier()->modifyData($data)); }
/** * {@inheritdoc} */ public function modifyData(array $data) { /** @var \Magento\Catalog\Api\Data\ProductInterface $model */ $model = $this->locator->getProduct(); $productTypeId = $model->getTypeId(); if ($this->allowedProductTypes->isAllowedProductType($this->locator->getProduct())) { $productId = $model->getId(); $data[$productId]['affect_configurable_product_attributes'] = '1'; if ($productTypeId === ConfigurableType::TYPE_CODE) { $data[$productId]['configurable-matrix'] = $this->associatedProducts->getProductMatrix(); $data[$productId]['attributes'] = $this->associatedProducts->getProductAttributesIds(); $data[$productId]['attribute_codes'] = $this->associatedProducts->getProductAttributesCodes(); $data[$productId]['product']['configurable_attributes_data'] = $this->associatedProducts->getConfigurableAttributesData(); } } return $data; }