92 $this->wishlistProvider = $this->getMockBuilder(\
Magento\
Wishlist\Controller\WishlistProviderInterface::class)
93 ->getMockForAbstractClass();
95 $this->wishlistHelper = $this->getMockBuilder(\
Magento\
Wishlist\Helper\Data::class)
96 ->disableOriginalConstructor()
99 $this->cart = $this->getMockBuilder(\
Magento\Checkout\Model\Cart::class)
100 ->disableOriginalConstructor()
103 $this->cartHelper = $this->getMockBuilder(\
Magento\Checkout\Helper\Cart::class)
104 ->disableOriginalConstructor()
107 $this->escaper = $this->getMockBuilder(\
Magento\Framework\Escaper::class)
108 ->disableOriginalConstructor()
111 $this->formKeyValidator = $this->getMockBuilder(\
Magento\Framework\
Data\Form\FormKey\Validator::class)
112 ->disableOriginalConstructor()
117 $this->wishlistProvider,
118 $this->wishlistHelper,
122 $this->formKeyValidator
128 $this->formKeyValidator->expects($this->once())
130 ->with($this->request)
133 $this->resultRedirect->expects($this->once())
138 $this->assertSame($this->resultRedirect, $this->controller->execute());
147 $this->formKeyValidator->expects($this->once())
149 ->with($this->request)
152 $this->wishlistProvider->expects($this->once())
153 ->method(
'getWishlist')
156 $this->controller->execute();
162 $cartUrl =
'cart_url';
164 $this->formKeyValidator->expects($this->once())
166 ->with($this->request)
169 $wishlistMock = $this->getMockBuilder(\
Magento\
Wishlist\Model\Wishlist::class)
170 ->disableOriginalConstructor()
173 $this->wishlistProvider->expects($this->once())
174 ->method(
'getWishlist')
175 ->willReturn($wishlistMock);
177 $this->request->expects($this->once())
180 ->willReturn($itemId);
182 $quoteMock = $this->getMockBuilder(\
Magento\Quote\Model\Quote::class)
183 ->disableOriginalConstructor()
186 $quoteMock->expects($this->once())
187 ->method(
'getItemById')
191 $this->cart->expects($this->once())
193 ->willReturn($quoteMock);
195 $this->cartHelper->expects($this->once())
196 ->method(
'getCartUrl')
197 ->willReturn($cartUrl);
199 $this->messageManager->expects($this->once())
200 ->method(
'addErrorMessage')
201 ->with(
__(
"The cart item doesn't exist."))
204 $this->resultRedirect->expects($this->once())
209 $this->assertSame($this->resultRedirect, $this->controller->execute());
215 $cartUrl =
'cart_url';
217 $productName =
'product_name';
219 $this->formKeyValidator->expects($this->once())
221 ->with($this->request)
224 $dataObjectMock = $this->getMockBuilder(\
Magento\Framework\DataObject::class)
225 ->disableOriginalConstructor()
228 $wishlistMock = $this->getMockBuilder(\
Magento\
Wishlist\Model\Wishlist::class)
229 ->disableOriginalConstructor()
231 $wishlistMock->expects($this->once())
232 ->method(
'addNewItem')
235 $wishlistMock->expects($this->once())
239 $this->wishlistProvider->expects($this->once())
240 ->method(
'getWishlist')
241 ->willReturn($wishlistMock);
243 $this->wishlistHelper->expects($this->once())
244 ->method(
'calculate')
247 $this->request->expects($this->once())
250 ->willReturn($itemId);
254 $this->cart->expects($this->exactly(2))
256 ->willReturn($quoteMock);
257 $this->cart->expects($this->once())
261 $this->cartHelper->expects($this->once())
262 ->method(
'getCartUrl')
263 ->willReturn($cartUrl);
265 $this->escaper->expects($this->once())
266 ->method(
'escapeHtml')
268 ->willReturn($productName);
270 $this->messageManager->expects($this->once())
271 ->method(
'addSuccessMessage')
272 ->with(
__(
"%1 has been moved to your wish list.", $productName))
275 $this->resultRedirect->expects($this->once())
280 $this->assertSame($this->resultRedirect, $this->controller->execute());
285 $cartUrl =
'cart_url';
286 $exceptionMessage =
'exception_message';
287 $exception = new \Exception($exceptionMessage);
289 $this->formKeyValidator->expects($this->once())
291 ->with($this->request)
294 $wishlistMock = $this->getMockBuilder(\
Magento\
Wishlist\Model\Wishlist::class)
295 ->disableOriginalConstructor()
298 $this->wishlistProvider->expects($this->once())
299 ->method(
'getWishlist')
300 ->willReturn($wishlistMock);
302 $this->request->expects($this->once())
305 ->willThrowException($exception);
307 $this->messageManager->expects($this->once())
308 ->method(
'addExceptionMessage')
309 ->with($exception,
__(
'We can\'t move the item to the wish list.'))
312 $this->cartHelper->expects($this->once())
313 ->method(
'getCartUrl')
314 ->willReturn($cartUrl);
316 $this->resultRedirect->expects($this->once())
321 $this->assertSame($this->resultRedirect, $this->controller->execute());
326 $this->request = $this->getMockBuilder(\
Magento\Framework\
App\Request\Http::class)
327 ->disableOriginalConstructor()
330 $this->messageManager = $this->getMockBuilder(\
Magento\Framework\Message\Manager::class)
331 ->disableOriginalConstructor()
334 $this->resultRedirect = $this->getMockBuilder(\
Magento\Framework\Controller\Result\Redirect::class)
335 ->disableOriginalConstructor()
338 $this->resultFactory = $this->getMockBuilder(\
Magento\Framework\Controller\ResultFactory::class)
339 ->disableOriginalConstructor()
341 $this->resultFactory->expects($this->any())
344 ->willReturn($this->resultRedirect);
346 $this->context = $this->getMockBuilder(\
Magento\Framework\
App\Action\Context::class)
347 ->disableOriginalConstructor()
350 $this->context->expects($this->any())
351 ->method(
'getRequest')
352 ->willReturn($this->request);
353 $this->context->expects($this->any())
354 ->method(
'getMessageManager')
355 ->willReturn($this->messageManager);
356 $this->context->expects($this->any())
357 ->method(
'getResultFactory')
358 ->willReturn($this->resultFactory);
370 $productMock = $this->getMockBuilder(\
Magento\Catalog\Model\Product::class)
371 ->disableOriginalConstructor()
373 $productMock->expects($this->once())
375 ->willReturn($productName);
377 $quoteItemMock = $this->getMockBuilder(\
Magento\Quote\Model\Quote\Item::class)
378 ->disableOriginalConstructor()
385 $quoteItemMock->expects($this->once())
386 ->method(
'getProductId')
388 $quoteItemMock->expects($this->once())
389 ->method(
'getBuyRequest')
390 ->willReturn($dataObjectMock);
391 $quoteItemMock->expects($this->once())
392 ->method(
'getProduct')
393 ->willReturn($productMock);
395 $quoteMock = $this->getMockBuilder(\
Magento\Quote\Model\Quote::class)
396 ->disableOriginalConstructor()
398 $quoteMock->expects($this->once())
399 ->method(
'getItemById')
401 ->willReturn($quoteItemMock);
402 $quoteMock->expects($this->once())
403 ->method(
'removeItem')
testExecuteWithInvalidFormKey()
testExecutePageNotFound()
createQuoteMock($productId, $productName, $dataObjectMock, $itemId)
testExecuteWithException()