9 use \Magento\Wishlist\Observer\CartUpdateBefore as Observer;
53 $this->helper = $this->getMockBuilder(\
Magento\Wishlist\Helper\Data::class)
54 ->disableOriginalConstructor()
56 $this->wishlistFactory = $this->getMockBuilder(\
Magento\Wishlist\Model\WishlistFactory::class)
57 ->disableOriginalConstructor()
58 ->setMethods([
'create'])
60 $this->wishlist = $this->getMockBuilder(\
Magento\Wishlist\Model\Wishlist::class)
61 ->disableOriginalConstructor()
63 $this->wishlistFactory->expects($this->any())
65 ->willReturn($this->wishlist);
67 $this->observer =
new Observer(
69 $this->wishlistFactory
77 public function testExecute()
84 $eventObserver = $this->getMockBuilder(\
Magento\Framework\Event\Observer::class)
85 ->disableOriginalConstructor()
88 $event = $this->getMockBuilder(\
Magento\Framework\Event::class)
89 ->setMethods([
'getCart',
'getInfo'])
90 ->disableOriginalConstructor()
93 $eventObserver->expects($this->exactly(2))
98 ->setMethods([
'getProductId',
'getBuyRequest',
'__wakeup'])
99 ->disableOriginalConstructor()
103 ->setMethods([
'setQty'])
104 ->disableOriginalConstructor()
107 $infoData = $this->getMockBuilder(\
Magento\Framework\DataObject::class)
108 ->setMethods([
'toArray'])
109 ->disableOriginalConstructor()
112 $infoData->expects($this->once())
114 ->willReturn([$itemId => [
'qty' => $itemQty,
'wishlist' =>
true]]);
116 $cart = $this->getMockBuilder(\
Magento\Checkout\Model\Cart::class)->disableOriginalConstructor()->getMock();
117 $quote = $this->getMockBuilder(\
Magento\Quote\Model\Quote::class)
118 ->setMethods([
'getCustomerId',
'getItemById',
'removeItem',
'__wakeup'])
119 ->disableOriginalConstructor()
122 $event->expects($this->once())
126 $event->expects($this->once())
128 ->willReturn($infoData);
130 $cart->expects($this->any())
135 ->method(
'getProductId')
138 ->method(
'getBuyRequest')
146 $quote->expects($this->once())
147 ->method(
'getCustomerId')
150 $quote->expects($this->once())
151 ->method(
'getItemById')
155 $quote->expects($this->once())
156 ->method(
'removeItem')
159 $this->wishlist->expects($this->once())
160 ->method(
'loadByCustomerId')
164 $this->wishlist->expects($this->once())
165 ->method(
'addNewItem')
168 $this->wishlist->expects($this->once())
171 $this->helper->expects($this->once())
172 ->method(
'calculate');
177 $this->observer->execute($eventObserver)
foreach($product->getExtensionAttributes() ->getBundleProductOptions() as $option) $buyRequest