diff --git a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php index 828cc31c1725cec790e89707948859e69c15d25a..e64d8c2ef84fa9c3d777eacbaaebfebf4ee00e60 100644 --- a/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php +++ b/app/code/Magento/Catalog/Test/Unit/Controller/Adminhtml/Product/Initialization/HelperTest.php @@ -359,13 +359,8 @@ class HelperTest extends \PHPUnit_Framework_TestCase { $linkMock = $this->getMockBuilder(ProductLinkInterface::class) ->disableOriginalConstructor() - ->setMethods(['getLinkType']) ->getMockForAbstractClass(); - $linkMock->expects($this->once()) - ->method('getLinkType') - ->willReturn('upsell'); - $this->productMock->expects($this->any()) ->method('getProductLinks') ->willReturn([$linkMock]); diff --git a/app/code/Magento/CatalogImportExport/Model/Import/Product.php b/app/code/Magento/CatalogImportExport/Model/Import/Product.php index ce62414411d3f4c2463b9cc2affecbb7e2d15906..415ec8bd0072491aef33fecc72f85cd2640b221e 100644 --- a/app/code/Magento/CatalogImportExport/Model/Import/Product.php +++ b/app/code/Magento/CatalogImportExport/Model/Import/Product.php @@ -1162,7 +1162,7 @@ class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity foreach ($skuData as $sku => $attributes) { $linkId = $this->_connection->fetchOne( $this->_connection->select() - ->from($this->_resource->getTable('catalog_product_entity')) + ->from($this->getResource()->getTable('catalog_product_entity')) ->where('sku = ?', $sku) ->columns($metadata->getLinkField()) ); diff --git a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php index fd2d6e9fb4646e67cb7e688253fed3178812d417..ae443adc9b5872ed9d41704cdc08c807ab5f3e8f 100644 --- a/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php +++ b/app/code/Magento/CatalogImportExport/Test/Unit/Model/Import/ProductTest.php @@ -527,10 +527,28 @@ class ProductTest extends \Magento\ImportExport\Test\Unit\Model\Import\AbstractI ] ] ]; - $this->skuProcessor->expects($this->once()) - ->method('getNewSku') - ->with($testSku) - ->willReturn(['entity_id' => self::ENTITY_ID]); + $metadataMock = $this->getMockBuilder('\Magento\Framework\Model\Entity\EntityMetadata') + ->disableOriginalConstructor() + ->getMock(); + $this->metadataPool->expects($this->any())->method('getMetadata') + ->with(\Magento\Catalog\Api\Data\ProductInterface::class) + ->willReturn($metadataMock); + $metadataMock->expects($this->any())->method('getLinkField')->willReturn('entity_id'); + $entityTable = 'catalog_product_entity'; + $resource = $this->getMockBuilder('\Magento\CatalogImportExport\Model\Import\Proxy\Product\ResourceModel') + ->disableOriginalConstructor() + ->setMethods(['getTable']) + ->getMock(); + $resource->expects($this->once())->method('getTable')->with($entityTable)->willReturnArgument(0); + $this->_resourceFactory->expects($this->once())->method('create')->willReturn($resource); + $selectMock = $this->getMockBuilder('Magento\Framework\DB\Select') + ->disableOriginalConstructor() + ->getMock(); + $selectMock->expects($this->once())->method('from')->with($entityTable, '*', null)->willReturnSelf(); + $selectMock->expects($this->once())->method('where')->with('sku = ?', $testSku)->willReturnSelf(); + $selectMock->expects($this->once())->method('columns')->with('entity_id')->willReturnSelf(); + $this->_connection->expects($this->any())->method('fetchOne')->willReturn(self::ENTITY_ID); + $this->_connection->expects($this->any())->method('select')->willReturn($selectMock); $this->_connection->expects($this->any()) ->method('quoteInto') ->willReturnCallback([$this, 'returnQuoteCallback']); diff --git a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php index 6eb76c83d0a1b104c70acf47b9d6121941ad7609..8dda060c4f75ff4428bb4ebede6985265c61def2 100644 --- a/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php +++ b/app/code/Magento/ConfigurableProduct/Model/ResourceModel/Product/Type/Configurable.php @@ -62,10 +62,7 @@ class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb { $isProductInstance = false; if ($mainProduct instanceof \Magento\Catalog\Model\Product) { - $mainProductId = $mainProduct->getData( - $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField() - ); - + $mainProductId = $mainProduct->getId(); $isProductInstance = true; } $old = []; @@ -91,9 +88,9 @@ class Configurable extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb } $this->getConnection()->insertMultiple($this->getMainTable(), $data); } - + $linkField = $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField(); // configurable product relations should be added to relation table - $this->_catalogProductRelation->processRelations($mainProductId, $productIds); + $this->_catalogProductRelation->processRelations($mainProduct->getData($linkField), $productIds); return $this; } diff --git a/lib/internal/Magento/Framework/DB/Select/SelectRenderer.php b/lib/internal/Magento/Framework/DB/Select/SelectRenderer.php index 9866775d1fecdd1d381a3058483cba1d828342dd..10b388638222c15e760a14a9b56722da1cf378ce 100644 --- a/lib/internal/Magento/Framework/DB/Select/SelectRenderer.php +++ b/lib/internal/Magento/Framework/DB/Select/SelectRenderer.php @@ -65,7 +65,7 @@ class SelectRenderer implements RendererInterface */ public function render(Select $select, $sql = '') { - $sql = Select::SQL_SELECT . ' '; + $sql = Select::SQL_SELECT; foreach ($this->renderers as $renderer) { if (in_array($renderer['part'], [Select::COLUMNS, Select::FROM]) || $select->getPart($renderer['part'])) { $sql = $renderer['renderer']->render($select, $sql);