CancelTest.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Test\Unit\Controller\Adminhtml\Order;
  7. use Magento\Framework\App\Action\Context;
  8. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  9. /**
  10. * Class CancelTest
  11. *
  12. * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  13. */
  14. class CancelTest extends \PHPUnit\Framework\TestCase
  15. {
  16. /**
  17. * @var \Magento\Sales\Controller\Adminhtml\Order\Cancel
  18. */
  19. protected $controller;
  20. /**
  21. * @var Context|\PHPUnit_Framework_MockObject_MockObject
  22. */
  23. protected $context;
  24. /**
  25. * @var \Magento\Backend\Model\View\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
  26. */
  27. protected $resultRedirect;
  28. /**
  29. * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject
  30. */
  31. protected $request;
  32. /**
  33. * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject
  34. */
  35. protected $response;
  36. /**
  37. * @var \Magento\Framework\Message\Manager|\PHPUnit_Framework_MockObject_MockObject
  38. */
  39. protected $messageManager;
  40. /**
  41. * @var \Magento\Sales\Api\OrderRepositoryInterface
  42. */
  43. protected $orderRepositoryMock;
  44. /**
  45. * @var \PHPUnit_Framework_MockObject_MockObject
  46. */
  47. protected $validatorMock;
  48. /**
  49. * @var \Magento\Framework\ObjectManager\ObjectManager|\PHPUnit_Framework_MockObject_MockObject
  50. */
  51. protected $objectManager;
  52. /**
  53. * Test setup
  54. */
  55. protected function setUp()
  56. {
  57. $objectManagerHelper = new ObjectManagerHelper($this);
  58. $this->context = $this->createMock(\Magento\Backend\App\Action\Context::class);
  59. $resultRedirectFactory = $this->createPartialMock(
  60. \Magento\Backend\Model\View\Result\RedirectFactory::class,
  61. ['create']
  62. );
  63. $this->response = $this->createPartialMock(
  64. \Magento\Framework\App\ResponseInterface::class,
  65. ['setRedirect', 'sendResponse']
  66. );
  67. $this->request = $this->getMockBuilder(\Magento\Framework\App\Request\Http::class)
  68. ->disableOriginalConstructor()->getMock();
  69. $this->messageManager = $this->createPartialMock(
  70. \Magento\Framework\Message\Manager::class,
  71. ['addSuccessMessage', 'addErrorMessage']
  72. );
  73. $this->orderRepositoryMock = $this->getMockBuilder(\Magento\Sales\Api\OrderRepositoryInterface::class)
  74. ->disableOriginalConstructor()
  75. ->getMock();
  76. $this->validatorMock = $this->getMockBuilder(\Magento\Framework\Data\Form\FormKey\Validator::class)
  77. ->disableOriginalConstructor()
  78. ->getMock();
  79. $this->resultRedirect = $this->createMock(\Magento\Backend\Model\View\Result\Redirect::class);
  80. $resultRedirectFactory->expects($this->any())->method('create')->willReturn($this->resultRedirect);
  81. $this->context->expects($this->once())->method('getMessageManager')->willReturn($this->messageManager);
  82. $this->context->expects($this->any())->method('getRequest')->willReturn($this->request);
  83. $this->context->expects($this->once())->method('getResponse')->willReturn($this->response);
  84. $this->context->expects($this->once())->method('getObjectManager')->willReturn($this->objectManager);
  85. $this->context->expects($this->once())->method('getResultRedirectFactory')->willReturn($resultRedirectFactory);
  86. $this->context->expects($this->once())->method('getFormKeyValidator')->willReturn($this->validatorMock);
  87. $this->controller = $objectManagerHelper->getObject(
  88. \Magento\Sales\Controller\Adminhtml\Order\Cancel::class,
  89. [
  90. 'context' => $this->context,
  91. 'request' => $this->request,
  92. 'response' => $this->response,
  93. 'orderRepository' => $this->orderRepositoryMock
  94. ]
  95. );
  96. }
  97. /**
  98. * testExecuteNotPost
  99. */
  100. public function testExecuteNotPost()
  101. {
  102. $this->validatorMock->expects($this->once())
  103. ->method('validate')
  104. ->willReturn(false);
  105. $this->request->expects($this->once())
  106. ->method('isPost')
  107. ->willReturn(false);
  108. $this->messageManager->expects($this->once())
  109. ->method('addErrorMessage')
  110. ->with('You have not canceled the item.');
  111. $this->resultRedirect->expects($this->once())
  112. ->method('setPath')
  113. ->with('sales/*/')
  114. ->willReturnSelf();
  115. $this->assertEquals($this->resultRedirect, $this->controller->execute());
  116. }
  117. }