/** * Return Purchased link for order item * * @return \Magento\Downloadable\Model\Link\Purchased */ public function getLinks() { $this->_purchasedLinks = $this->_purchasedFactory->create()->load($this->getOrder()->getId(), 'order_id'); $purchasedItems = $this->_itemsFactory->create()->addFieldToFilter('order_item_id', $this->getItem()->getOrderItem()->getId()); $this->_purchasedLinks->setPurchasedItems($purchasedItems); return $this->_purchasedLinks; }
public function testGetLinks() { $item = $this->getMockBuilder('\\Magento\\Sales\\Model\\Order\\Item')->disableOriginalConstructor()->setMethods(['getId'])->getMock(); $linkPurchased = $this->getMockBuilder('Magento\\Downloadable\\Model\\Link\\Purchased')->disableOriginalConstructor()->setMethods(['load'])->getMock(); $itemCollection = $this->getMockBuilder('Magento\\Downloadable\\Model\\ResourceModel\\Link\\Purchased\\Item\\Collection')->disableOriginalConstructor()->setMethods(['addFieldToFilter'])->getMock(); $this->block->setData('item', $item); $this->purchasedFactory->expects($this->once())->method('create')->willReturn($linkPurchased); $linkPurchased->expects($this->once())->method('load')->with('itemId', 'order_item_id')->willReturnSelf(); $item->expects($this->any())->method('getId')->willReturn('itemId'); $this->itemsFactory->expects($this->once())->method('create')->willReturn($itemCollection); $itemCollection->expects($this->once())->method('addFieldToFilter')->with('order_item_id', 'itemId')->willReturnSelf(); $this->assertEquals($linkPurchased, $this->block->getLinks()); }
/** * Class constructor * * @return void */ protected function _construct() { parent::_construct(); $purchased = $this->_linksFactory->create()->addFieldToFilter('customer_id', $this->currentCustomer->getCustomerId())->addOrder('created_at', 'desc'); $this->setPurchased($purchased); $purchasedIds = []; foreach ($purchased as $_item) { $purchasedIds[] = $_item->getId(); } if (empty($purchasedIds)) { $purchasedIds = [null]; } $purchasedItems = $this->_itemsFactory->create()->addFieldToFilter('purchased_id', ['in' => $purchasedIds])->addFieldToFilter('status', ['nin' => [Item::LINK_STATUS_PENDING_PAYMENT, Item::LINK_STATUS_PAYMENT_REVIEW]])->setOrder('item_id', 'desc'); $this->setItems($purchasedItems); }
/** * @return \Magento\Downloadable\Model\ResourceModel\Link\Purchased\Item\Collection */ protected function _createItemsCollection() { return $this->_itemsFactory->create(); }