PageRenderTime 44ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/magento/module-braintree/Test/Unit/Controller/Creditcard/DeleteTest.php

https://gitlab.com/yousafsyed/easternglamor
PHP | 241 lines | 151 code | 44 blank | 46 comment | 0 complexity | ce6724011a6926f574c04007ea4115a6 MD5 | raw file
  1. <?php
  2. /**
  3. * Copyright © 2016 Magento. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Braintree\Test\Unit\Controller\Creditcard;
  7. use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
  8. use Magento\Framework\Exception\LocalizedException;
  9. class DeleteTest extends \PHPUnit_Framework_TestCase
  10. {
  11. /**
  12. * @var \Magento\Framework\App\Request\Http
  13. */
  14. private $request;
  15. /**
  16. * @var \Magento\Framework\View\Result\PageFactory
  17. */
  18. private $resultPageFactory;
  19. /**
  20. * @var \Magento\Framework\View\Result\Page
  21. */
  22. private $resultPage;
  23. /**
  24. * @var \Magento\Framework\Controller\Result\RedirectFactory
  25. */
  26. private $resultRedirectFactory;
  27. /**
  28. * @var \Magento\Framework\Controller\Result\Redirect
  29. */
  30. private $resultRedirect;
  31. /**
  32. * @var \Magento\Framework\View\Element\AbstractBlock
  33. */
  34. private $block;
  35. /**
  36. * @var \Magento\Framework\View\Page\Config
  37. */
  38. private $pageConfig;
  39. /**
  40. * @var \Magento\Framework\View\Layout
  41. */
  42. private $pageLayout;
  43. /**
  44. * @var \Magento\Braintree\Model\Vault
  45. */
  46. private $vault;
  47. /**
  48. * test setup
  49. */
  50. public function setUp()
  51. {
  52. $this->request = $this->getMockBuilder('\Magento\Framework\App\Request\Http')
  53. ->disableOriginalConstructor()
  54. ->setMethods(['getParam'])
  55. ->getMock();
  56. $this->pageConfig = $this->getMockBuilder('\Magento\Framework\View\Page\Config')
  57. ->disableOriginalConstructor()
  58. ->setMethods(['set', 'getTitle'])
  59. ->getMock();
  60. $this->vault = $this->getMockBuilder('\Magento\Braintree\Model\Vault')
  61. ->disableOriginalConstructor()
  62. ->getMock();
  63. $this->resultRedirectFactory = $this->getMockBuilder('\Magento\Framework\Controller\Result\RedirectFactory')
  64. ->disableOriginalConstructor()
  65. ->setMethods(['create'])
  66. ->getMock();
  67. $this->resultRedirect = $this->getMockBuilder('\Magento\Framework\Controller\Result\Redirect')
  68. ->disableOriginalConstructor()
  69. ->getMock();
  70. $this->resultPageFactory = $this->getMockBuilder('\Magento\Framework\View\Result\PageFactory')
  71. ->disableOriginalConstructor()
  72. ->setMethods(['create'])
  73. ->getMock();
  74. $this->resultPage = $this->getMockBuilder('\Magento\Framework\View\Result\Page')
  75. ->disableOriginalConstructor()
  76. ->getMock();
  77. $this->block = $this->getMockBuilder('\Magento\Framework\View\Element\AbstractBlock')
  78. ->disableOriginalConstructor()
  79. ->getMock();
  80. $this->pageLayout = $this->getMockBuilder('\Magento\Framework\View\Layout')
  81. ->disableOriginalConstructor()
  82. ->getMock();
  83. }
  84. /**
  85. * Executes the controller action and asserts non exception logic
  86. */
  87. public function testExecute()
  88. {
  89. $objectManager = new ObjectManagerHelper($this);
  90. $this->vault->expects($this->once())
  91. ->method('storedCard')
  92. ->willReturn(true);
  93. $this->request->expects($this->any())
  94. ->method('getParam')
  95. ->willReturn('token');
  96. $this->resultRedirectFactory->expects($this->never())
  97. ->method('create')
  98. ->willReturn($this->resultRedirect);
  99. $this->resultPageFactory->expects($this->once())
  100. ->method('create')
  101. ->willReturn($this->resultPage);
  102. $this->resultPage->expects($this->any())
  103. ->method('getLayout')
  104. ->willReturn($this->pageLayout);
  105. $this->pageLayout->expects($this->any())
  106. ->method('getBlock')
  107. ->willReturn($this->block);
  108. $this->pageConfig->expects($this->once())
  109. ->method('getTitle')
  110. ->willReturnSelf();
  111. $this->resultPage->expects($this->any())
  112. ->method('getConfig')
  113. ->willReturn($this->pageConfig);
  114. $notification = $objectManager->getObject(
  115. 'Magento\Braintree\Controller\Creditcard\Delete',
  116. [
  117. 'request' => $this->request,
  118. 'resultPageFactory' => $this->resultPageFactory,
  119. 'vault' => $this->vault,
  120. ]
  121. );
  122. $this->assertSame($this->resultPage, $notification->execute());
  123. }
  124. /**
  125. * Executes the controller action and asserts with redirect for non valid token param
  126. */
  127. public function testExecuteNoTokenRedirect()
  128. {
  129. $objectManager = new ObjectManagerHelper($this);
  130. $this->vault->expects($this->never())
  131. ->method('storedCard');
  132. $this->request->expects($this->any())
  133. ->method('getParam')
  134. ->willReturn(null);
  135. $this->resultRedirectFactory->expects($this->once())
  136. ->method('create')
  137. ->willReturn($this->resultRedirect);
  138. $this->resultPageFactory->expects($this->never())
  139. ->method('create')
  140. ->willReturn($this->resultPage);
  141. $this->resultRedirect->expects($this->once())
  142. ->method('setPath')
  143. ->willReturnSelf();
  144. $notification = $objectManager->getObject(
  145. 'Magento\Braintree\Controller\Creditcard\Delete',
  146. [
  147. 'request' => $this->request,
  148. 'resultPageFactory' => $this->resultPageFactory,
  149. 'resultRedirectFactory' => $this->resultRedirectFactory,
  150. 'vault' => $this->vault,
  151. ]
  152. );
  153. $this->assertSame($this->resultRedirect, $notification->execute());
  154. }
  155. /**
  156. * Executes the controller action and asserts with redirects for non existing logic
  157. */
  158. public function testExecuteNonExistingTokenRedirect()
  159. {
  160. $objectManager = new ObjectManagerHelper($this);
  161. $phrase = new \Magento\Framework\Phrase('Credit card does not exist');
  162. $this->vault->expects($this->once())
  163. ->method('storedCard')
  164. ->willReturn(false);
  165. $this->request->expects($this->any())
  166. ->method('getParam')
  167. ->willReturn('token');
  168. $this->resultRedirectFactory->expects($this->once())
  169. ->method('create')
  170. ->willReturn($this->resultRedirect);
  171. $this->resultPageFactory->expects($this->never())
  172. ->method('create')
  173. ->willReturn($this->resultPage);
  174. $this->resultRedirect->expects($this->once())
  175. ->method('setPath')
  176. ->willReturnSelf();
  177. /**
  178. * @var \Magento\Framework\Message\ManagerInterface $messageManager
  179. */
  180. $messageManager= $this->getMockBuilder('\Magento\Framework\Message\ManagerInterface')
  181. ->getMock();
  182. $messageManager->expects($this->once())
  183. ->method('addError')
  184. ->with($phrase);
  185. $notification = $objectManager->getObject(
  186. 'Magento\Braintree\Controller\Creditcard\Delete',
  187. [
  188. 'request' => $this->request,
  189. 'resultPageFactory' => $this->resultPageFactory,
  190. 'resultRedirectFactory' => $this->resultRedirectFactory,
  191. 'vault' => $this->vault,
  192. 'messageManager' => $messageManager,
  193. ]
  194. );
  195. $this->assertSame($this->resultRedirect, $notification->execute());
  196. }
  197. }