/**
  * @covers \Magento\Catalog\Model\Product::getRelatedProducts
  * @covers \Magento\Catalog\Model\Product::getRelatedProductIds
  * @covers \Magento\Catalog\Model\Product::getRelatedProductCollection
  * @covers \Magento\Catalog\Model\Product::getRelatedLinkCollection
  */
 public function testRelatedProductsApi()
 {
     $this->assertEquals([], $this->_model->getRelatedProducts());
     $this->assertEquals([], $this->_model->getRelatedProductIds());
     $collection = $this->_model->getRelatedProductCollection();
     $this->assertInstanceOf('Magento\\Catalog\\Model\\ResourceModel\\Product\\Collection', $collection);
     $this->assertSame($this->_model, $collection->getProduct());
     $linkCollection = $this->_model->getRelatedLinkCollection();
     $this->assertInstanceOf('Magento\\Catalog\\Model\\ResourceModel\\Product\\Link\\Collection', $linkCollection);
     $this->assertSame($this->_model, $linkCollection->getProduct());
 }
Example #2
0
 /**
  * Build product links
  *
  * @param \Magento\Catalog\Model\Product $product
  * @param \Magento\Catalog\Model\Product $duplicate
  * @return void
  */
 public function build(\Magento\Catalog\Model\Product $product, \Magento\Catalog\Model\Product $duplicate)
 {
     $data = [];
     $attributes = [];
     $link = $product->getLinkInstance();
     $link->useRelatedLinks();
     foreach ($link->getAttributes() as $attribute) {
         if (isset($attribute['code'])) {
             $attributes[] = $attribute['code'];
         }
     }
     /** @var \Magento\Catalog\Model\Product\Link $link  */
     foreach ($product->getRelatedLinkCollection() as $link) {
         $data[$link->getLinkedProductId()] = $link->toArray($attributes);
     }
     $duplicate->setRelatedLinkData($data);
 }
 /**
  * {@inheritdoc}
  */
 public function getRelatedLinkCollection()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getRelatedLinkCollection');
     if (!$pluginInfo) {
         return parent::getRelatedLinkCollection();
     } else {
         return $this->___callPlugins('getRelatedLinkCollection', func_get_args(), $pluginInfo);
     }
 }