Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AddFieldsToResponseObserverTest.php
Go to the documentation of this file.
1 <?php
7 
9 
15 class AddFieldsToResponseObserverTest extends \PHPUnit\Framework\TestCase
16 {
22  protected $coreRegistryMock;
23 
27  protected $paymentMock;
28 
32  protected $sessionMock;
33 
37  protected $storeManagerMock;
38 
42  protected $actionMock;
43 
47  protected $resultMock;
48 
53 
59  protected function setUp()
60  {
61  $helper = new ObjectManager($this);
62 
63  $this->coreRegistryMock = $this->getMockBuilder(\Magento\Framework\Registry::class)
64  ->disableOriginalConstructor()
65  ->getMock();
66  $this->paymentMock = $this->getMockBuilder(\Magento\Authorizenet\Model\Directpost::class)
67  ->disableOriginalConstructor()
68  ->getMock();
69  $this->sessionMock = $this->getMockBuilder(\Magento\Authorizenet\Model\Directpost\Session::class)
70  ->disableOriginalConstructor()
71  ->setMethods(['setLastOrderIncrementId', 'addCheckoutOrderIncrementId'])
72  ->getMock();
73  $this->storeManagerMock = $this->getMockBuilder(\Magento\Store\Model\StoreManagerInterface::class)
74  ->disableOriginalConstructor()
75  ->getMockForAbstractClass();
76  $this->actionMock = $this->getMockBuilder(\Magento\Checkout\Controller\Onepage\SaveOrder::class)
77  ->disableOriginalConstructor()
78  ->getMock();
79  $this->resultMock = $this->getMockBuilder(\Magento\Framework\DataObject::class)
80  ->disableOriginalConstructor()
81  ->getMock();
82 
83  $this->addFieldsToResponseObserver = $helper->getObject(
84  \Magento\Authorizenet\Observer\AddFieldsToResponseObserver::class,
85  [
86  'coreRegistry' => $this->coreRegistryMock,
87  'payment' => $this->paymentMock,
88  'session' => $this->sessionMock,
89  'storeManager' => $this->storeManagerMock,
90  ]
91  );
92  }
93 
100  {
101  $testData = $this->getAddFieldsToResponseSuccessTestData();
102 
103  $observerMock = $this->getMockBuilder(\Magento\Framework\Event\Observer::class)
104  ->disableOriginalConstructor()
105  ->getMock();
106  $orderMock = $this->getMockBuilder(\Magento\Sales\Model\Order::class)
107  ->disableOriginalConstructor()
108  ->getMock();
109  $orderPaymentMock = $this->getMockBuilder(\Magento\Sales\Model\Order\Payment::class)
110  ->disableOriginalConstructor()
111  ->getMock();
112  $instanceMock = $this->getMockBuilder(\Magento\Authorizenet\Model\Directpost::class)
113  ->disableOriginalConstructor()
114  ->getMock();
115  $requestToAuthorizenetMock = $this->getMockBuilder(\Magento\Authorizenet\Model\Directpost\Request::class)
116  ->disableOriginalConstructor()
117  ->setMethods(['setControllerActionName', 'setIsSecure', 'getData'])
118  ->getMock();
119  $requestMock = $this->getMockBuilder(\Magento\Framework\App\RequestInterface::class)
120  ->disableOriginalConstructor()
121  ->setMethods(['getControllerName'])
122  ->getMockForAbstractClass();
123  $storeMock = $this->getMockBuilder(\Magento\Store\Model\Store::class)
124  ->disableOriginalConstructor()
125  ->getMock();
126 
127  $this->coreRegistryMock->expects($this->once())
128  ->method('registry')
129  ->with('directpost_order')
130  ->willReturn($orderMock);
131  $orderMock->expects($this->once())
132  ->method('getId')
133  ->willReturn($testData['order.getId']);
134  $orderMock->expects($this->once())
135  ->method('getPayment')
136  ->willReturn($orderPaymentMock);
137  $orderPaymentMock->expects($this->once())
138  ->method('getMethod')
139  ->willReturn($testData['orderPayment.getMethod']);
140  $this->paymentMock->expects($this->exactly(2))
141  ->method('getCode')
142  ->willReturn($testData['payment.getCode']);
143  $observerMock->expects($this->atLeastOnce())
144  ->method('getData')
145  ->willReturnMap($testData['observer.getData']);
146  $this->resultMock->expects($this->once())
147  ->method('getData')
148  ->willReturn($testData['result.getData']);
149  $orderMock->expects($this->atLeastOnce())
150  ->method('getIncrementId')
151  ->willReturn($testData['order.getIncrementId']);
152  $this->sessionMock->expects($this->once())
153  ->method('addCheckoutOrderIncrementId')
154  ->with($testData['session.addCheckoutOrderIncrementId']);
155  $this->sessionMock->expects($this->once())
156  ->method('setLastOrderIncrementId')
157  ->with($testData['session.setLastOrderIncrementId']);
158  $orderPaymentMock->expects($this->once())
159  ->method('getMethodInstance')
160  ->willReturn($instanceMock);
161  $instanceMock->expects($this->once())
162  ->method('generateRequestFromOrder')
163  ->with($orderMock)
164  ->willReturn($requestToAuthorizenetMock);
165  $this->actionMock->expects($this->once())
166  ->method('getRequest')
167  ->willReturn($requestMock);
168  $requestMock->expects($this->once())
169  ->method('getControllerName')
170  ->willReturn($testData['request.getControllerName']);
171  $requestToAuthorizenetMock->expects($this->once())
172  ->method('setControllerActionName')
173  ->with($testData['requestToAuthorizenet.setControllerActionName']);
174  $this->storeManagerMock->expects($this->once())
175  ->method('getStore')
176  ->willReturn($storeMock);
177  $storeMock->expects($this->once())
178  ->method('isCurrentlySecure')
179  ->willReturn($testData['store.isCurrentlySecure']);
180  $requestToAuthorizenetMock->expects($this->once())
181  ->method('setIsSecure')
182  ->with($testData['requestToAuthorizenet.setIsSecure']);
183  $requestToAuthorizenetMock->expects($this->once())
184  ->method('getData')
185  ->willReturn($testData['requestToAuthorizenet.getData']);
186  $this->resultMock->expects($this->once())
187  ->method('setData')
188  ->with($testData['result.setData']);
189 
190  $this->addFieldsToResponseObserver->execute($observerMock);
191  }
192 
199  {
200  $requestFields = [
201  'field-1' => 'field-value-1',
202  'field-2' => 'field-value-2',
203  'field-3' => 'field-value-3',
204  ];
205  $secure = 'test-currently-secure';
206  $controllerName = 'test-controller-name';
207  $incrementId = '0000000001';
208  $paymentCode = 'test-payment-code';
209 
210  return [
211  'order.getId' => 77,
212  'orderPayment.getMethod' => $paymentCode,
213  'payment.getCode' => $paymentCode,
214  'observer.getData' => [
215  ['action', null, $this->actionMock],
216  ['result', null, $this->resultMock],
217  ],
218  'result.getData' => [
219  'error' => false
220  ],
221  'order.getIncrementId' => $incrementId,
222  'session.addCheckoutOrderIncrementId' => $incrementId,
223  'session.setLastOrderIncrementId' => $incrementId,
224  'request.getControllerName' => $controllerName,
225  'requestToAuthorizenet.setControllerActionName' => $controllerName,
226  'store.isCurrentlySecure' => $secure,
227  'requestToAuthorizenet.setIsSecure' => $secure,
228  'requestToAuthorizenet.getData' => $requestFields,
229  'result.setData' => [
230  'error' => false,
231  'test-payment-code' => [
232  'fields' => $requestFields
233  ]
234  ]
235  ];
236  }
237 }
$helper
Definition: iframe.phtml:13
return false
Definition: gallery.phtml:36