AddTest.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. declare(strict_types=1);
  7. namespace Magento\Checkout\Test\Unit\Controller\Cart;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. class AddTest extends \PHPUnit\Framework\TestCase
  10. {
  11. /**
  12. * @var ObjectManagerHelper
  13. */
  14. private $objectManagerHelper;
  15. /**
  16. * @var \Magento\Framework\Data\Form\FormKey\Validator|\PHPUnit_Framework_MockObject_MockObject
  17. */
  18. private $formKeyValidator;
  19. /**
  20. * @var \Magento\Framework\Controller\Result\RedirectFactory|\PHPUnit_Framework_MockObject_MockObject
  21. */
  22. private $resultRedirectFactory;
  23. /**
  24. * @var \Magento\Framework\App\RequestInterface|\PHPUnit_Framework_MockObject_MockObject
  25. */
  26. private $request;
  27. /**
  28. * @var \Magento\Framework\Message\ManagerInterface|\PHPUnit_Framework_MockObject_MockObject
  29. */
  30. private $messageManager;
  31. /**
  32. * @var \Magento\Checkout\Controller\Cart\Add|\PHPUnit_Framework_MockObject_MockObject
  33. */
  34. private $cartAdd;
  35. /**
  36. * Init mocks for tests.
  37. *
  38. * @return void
  39. */
  40. public function setUp()
  41. {
  42. $this->formKeyValidator = $this->getMockBuilder(\Magento\Framework\Data\Form\FormKey\Validator::class)
  43. ->disableOriginalConstructor()->getMock();
  44. $this->resultRedirectFactory =
  45. $this->getMockBuilder(\Magento\Framework\Controller\Result\RedirectFactory::class)
  46. ->disableOriginalConstructor()->getMock();
  47. $this->request = $this->getMockBuilder(\Magento\Framework\App\RequestInterface::class)
  48. ->disableOriginalConstructor()->getmock();
  49. $this->messageManager = $this->getMockBuilder(\Magento\Framework\Message\ManagerInterface::class)
  50. ->disableOriginalConstructor()->getMock();
  51. $this->objectManagerHelper = new ObjectManagerHelper($this);
  52. $this->cartAdd = $this->objectManagerHelper->getObject(
  53. \Magento\Checkout\Controller\Cart\Add::class,
  54. [
  55. '_formKeyValidator' => $this->formKeyValidator,
  56. 'resultRedirectFactory' => $this->resultRedirectFactory,
  57. '_request' => $this->request,
  58. 'messageManager' => $this->messageManager
  59. ]
  60. );
  61. }
  62. /**
  63. * Test for method execute.
  64. *
  65. * @return void
  66. */
  67. public function testExecute()
  68. {
  69. $redirect = $this->getMockBuilder(\Magento\Framework\Controller\Result\Redirect::class)
  70. ->disableOriginalConstructor()
  71. ->getMock();
  72. $path = '*/*/';
  73. $this->formKeyValidator->expects($this->once())->method('validate')->with($this->request)->willReturn(false);
  74. $this->messageManager->expects($this->once())->method('addErrorMessage');
  75. $this->resultRedirectFactory->expects($this->once())->method('create')->willReturn($redirect);
  76. $redirect->expects($this->once())->method('setPath')->with($path)->willReturnSelf();
  77. $this->assertEquals($redirect, $this->cartAdd->execute());
  78. }
  79. }