9 use \Magento\Wishlist\Observer\AddToCart as Observer;
53 $this->checkoutSession = $this->getMockBuilder(
54 \
Magento\Checkout\Model\Session::class
58 'getWishlistPendingMessages',
59 'getWishlistPendingUrls',
61 'getSingleWishlistId',
62 'setSingleWishlistId',
64 'setWishlistPendingUrls',
65 'setWishlistPendingMessages',
68 )->disableOriginalConstructor()->getMock();
69 $this->customerSession = $this->getMockBuilder(\
Magento\Customer\Model\Session::class)
70 ->disableOriginalConstructor()
71 ->setMethods([
'setWishlistItemCount',
'isLoggedIn',
'getCustomerId'])
73 $this->wishlistFactory = $this->getMockBuilder(\
Magento\Wishlist\Model\WishlistFactory::class)
74 ->disableOriginalConstructor()
75 ->setMethods([
'create'])
77 $this->wishlist = $this->getMockBuilder(\
Magento\Wishlist\Model\Wishlist::class)
78 ->disableOriginalConstructor()
80 $this->messageManager = $this->getMockBuilder(\
Magento\Framework\Message\ManagerInterface::class)
83 $this->wishlistFactory->expects($this->any())
85 ->willReturn($this->wishlist);
87 $this->observer =
new Observer(
88 $this->checkoutSession,
89 $this->customerSession,
90 $this->wishlistFactory,
95 public function testExecute()
99 $url =
'http://some.pending/url';
102 $eventObserver = $this->getMockBuilder(\
Magento\Framework\Event\Observer::class)
103 ->disableOriginalConstructor()
105 $event = $this->getMockBuilder(\
Magento\Framework\Event::class)
106 ->setMethods([
'getRequest',
'getResponse'])
107 ->disableOriginalConstructor()
109 $request = $this->getMockBuilder(\
Magento\Framework\
App\RequestInterface::class)->getMock();
111 ->setMethods([
'setRedirect'])
112 ->getMockForAbstractClass();
113 $wishlists = $this->getMockBuilder(\
Magento\Wishlist\Model\
ResourceModel\Wishlist\Collection::class)
114 ->disableOriginalConstructor()
116 $loadedWishlist = $this->getMockBuilder(\
Magento\Wishlist\Model\Wishlist\Item::class)
117 ->setMethods([
'getId',
'delete'])
118 ->disableOriginalConstructor()
121 $eventObserver->expects($this->any())->method(
'getEvent')->willReturn($event);
123 $request->expects($this->any())->method(
'getParam')->with(
'wishlist_next')->willReturn(
true);
124 $event->expects($this->once())->method(
'getRequest')->willReturn(
$request);
126 $this->checkoutSession->expects($this->once())->method(
'getSharedWishlist');
127 $this->checkoutSession->expects($this->once())->method(
'getWishlistPendingMessages')->willReturn([
$message]);
128 $this->checkoutSession->expects($this->once())->method(
'getWishlistPendingUrls')->willReturn([
$url]);
129 $this->checkoutSession->expects($this->once())->method(
'getWishlistIds');
130 $this->checkoutSession->expects($this->once())->method(
'getSingleWishlistId')->willReturn($wishlistId);
132 $this->customerSession->expects($this->once())
133 ->method(
'isLoggedIn')
135 $this->customerSession->expects($this->once())
136 ->method(
'getCustomerId')
138 $this->wishlist->expects($this->once())
139 ->method(
'loadByCustomerId')
142 $this->wishlist->expects($this->once())
143 ->method(
'getItemCollection')
144 ->willReturn($wishlists);
145 $loadedWishlist->expects($this->once())
147 ->willReturn($wishlistId);
148 $loadedWishlist->expects($this->once())
150 $wishlists->expects($this->once())
152 ->willReturn([$loadedWishlist]);
153 $this->checkoutSession->expects($this->once())
154 ->method(
'setWishlistIds')
157 $this->checkoutSession->expects($this->once())
158 ->method(
'setSingleWishlistId')
161 $this->checkoutSession->expects($this->once())
162 ->method(
'setWishlistPendingUrls')
165 $this->checkoutSession->expects($this->once())
166 ->method(
'setWishlistPendingMessages')
169 $this->messageManager->expects($this->once())
173 $event->expects($this->once())
174 ->method(
'getResponse')
177 ->method(
'setRedirect')
179 $this->checkoutSession->expects($this->once())
180 ->method(
'setNoCartRedirect')
184 $this->observer->execute($eventObserver);