public function testGetOptions() { $item = $this->getMock('\\Magento\\Catalog\\Model\\Product\\Configuration\\Item\\ItemInterface'); $product = $this->getMockBuilder('\\Magento\\Catalog\\Model\\Product')->disableOriginalConstructor()->setMethods(['_wakeup', 'getLinksTitle', 'getTypeInstance'])->getMock(); $option = $this->getMock('\\Magento\\Catalog\\Model\\Product\\Configuration\\Item\\Option\\OptionInterface'); $productType = $this->getMockBuilder('\\Magento\\Downloadable\\Model\\Product\\Type')->disableOriginalConstructor()->setMethods(['getLinks'])->getMock(); $productLink = $this->getMockBuilder('\\Magento\\Downloadable\\Model\\Link')->disableOriginalConstructor()->setMethods(['getTitle'])->getMock(); $this->productConfig->expects($this->once())->method('getOptions')->with($item); $item->expects($this->any())->method('getProduct')->willReturn($product); $item->expects($this->once())->method('getOptionByCode')->willReturn($option); $product->expects($this->once())->method('getTypeInstance')->willReturn($productType); $productType->expects($this->once())->method('getLinks')->with($product)->willReturn([1 => $productLink]); $option->expects($this->once())->method('getValue')->willReturn(1); $product->expects($this->once())->method('getLinksTitle')->willReturn('links_title'); $productLink->expects($this->once())->method('getTitle')->willReturn('title'); $this->assertEquals([['label' => 'links_title', 'value' => ['title']]], $this->helper->getOptions($item)); }
/** * Return title of links section * * @return string */ public function getLinksTitle() { return $this->_downloadProdConfig->getLinksTitle($this->getProduct()); }
/** * Get list of all options for product * @param \Magento\Catalog\Model\Product\Configuration\Item\ItemInterface $item * @return array */ public function getOption($item) { return $this->_downloadableProductConfiguration->getOptions($item); }