Пример #1
0
 /**
  * {@inheritdoc}
  */
 public function getSectionData()
 {
     $pluginInfo = $this->pluginList->getNext($this->subjectType, 'getSectionData');
     if (!$pluginInfo) {
         return parent::getSectionData();
     } else {
         return $this->___callPlugins('getSectionData', func_get_args(), $pluginInfo);
     }
 }
Пример #2
0
 /**
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function testGetSectionDataWithCompositeProduct()
 {
     $summaryQty = 100;
     $subtotalValue = 200;
     $productId = 10;
     $storeId = 20;
     $productRewrite = [$productId => ['rewrite' => 'product']];
     $itemData = ['item' => 'data'];
     $shortcutButtonsHtml = '<span>Buttons</span>';
     $subtotalMock = $this->getMock('\\Magento\\Framework\\DataObject', ['getValue'], [], '', false);
     $subtotalMock->expects($this->once())->method('getValue')->willReturn($subtotalValue);
     $totals = ['subtotal' => $subtotalMock];
     $quoteMock = $this->getMock('\\Magento\\Quote\\Model\\Quote', ['getTotals', 'getHasError', 'getAllVisibleItems'], [], '', false);
     $quoteItemMock = $this->getMock('\\Magento\\Quote\\Model\\Quote\\Item', ['getProduct', 'getOptionByCode', 'getStoreId'], [], '', false);
     $this->checkoutSessionMock->expects($this->exactly(2))->method('getQuote')->willReturn($quoteMock);
     $quoteMock->expects($this->once())->method('getTotals')->willReturn($totals);
     $quoteMock->expects($this->once())->method('getHasError')->willReturn(false);
     $this->checkoutCartMock->expects($this->once())->method('getSummaryQty')->willReturn($summaryQty);
     $this->checkoutHelperMock->expects($this->once())->method('formatPrice')->with($subtotalValue)->willReturn($subtotalValue);
     $this->checkoutHelperMock->expects($this->once())->method('canOnepageCheckout')->willReturn(true);
     $quoteMock->expects($this->once())->method('getAllVisibleItems')->willReturn([$quoteItemMock]);
     $productMock = $this->getMock('\\Magento\\Catalog\\Model\\Product', ['isVisibleInSiteVisibility', 'getId', 'setUrlDataObject'], [], '', false);
     $optionsMock = $this->getMock('\\Magento\\Quote\\Model\\Quote\\Item\\Option', [], [], '', false);
     $optionsMock->expects($this->once())->method('getProduct')->willReturn($productMock);
     $quoteItemMock->expects($this->exactly(2))->method('getProduct')->willReturn($productMock);
     $quoteItemMock->expects($this->exactly(2))->method('getOptionByCode')->with('product_type')->willReturn($optionsMock);
     $quoteItemMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
     $productMock->expects($this->once())->method('isVisibleInSiteVisibility')->willReturn(false);
     $productMock->expects($this->exactly(3))->method('getId')->willReturn($productId);
     $productMock->expects($this->once())->method('setUrlDataObject')->with(new \Magento\Framework\DataObject($productRewrite[$productId]))->willReturnSelf();
     $this->catalogUrlMock->expects($this->once())->method('getRewriteByProductStore')->with([$productId => $storeId])->willReturn($productRewrite);
     $shortcutButtonsMock = $this->getMock('\\Magento\\Catalog\\Block\\ShortcutButtons', [], [], '', false);
     $this->layoutMock->expects($this->once())->method('createBlock')->with('Magento\\Catalog\\Block\\ShortcutButtons')->willReturn($shortcutButtonsMock);
     $shortcutButtonsMock->expects($this->once())->method('toHtml')->willReturn($shortcutButtonsHtml);
     $this->checkoutHelperMock->expects($this->once())->method('isAllowedGuestCheckout')->with($quoteMock)->willReturn(true);
     $this->itemPoolInterfaceMock->expects($this->once())->method('getItemData')->with($quoteItemMock)->willReturn($itemData);
     $expectedResult = ['summary_count' => 100, 'subtotal' => 200, 'possible_onepage_checkout' => 1, 'items' => [['item' => 'data']], 'extra_actions' => '<span>Buttons</span>', 'isGuestCheckoutAllowed' => 1];
     $this->assertEquals($expectedResult, $this->model->getSectionData());
 }