63 $this->coreRegistryMock = $this->getMockBuilder(\
Magento\Framework\Registry::class)
64 ->disableOriginalConstructor()
66 $this->paymentMock = $this->getMockBuilder(\
Magento\Authorizenet\Model\Directpost::class)
67 ->disableOriginalConstructor()
69 $this->sessionMock = $this->getMockBuilder(\
Magento\Authorizenet\Model\Directpost\Session::class)
70 ->disableOriginalConstructor()
71 ->setMethods([
'setLastOrderIncrementId',
'addCheckoutOrderIncrementId'])
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()
79 $this->resultMock = $this->getMockBuilder(\
Magento\Framework\DataObject::class)
80 ->disableOriginalConstructor()
83 $this->addFieldsToResponseObserver =
$helper->getObject(
84 \
Magento\Authorizenet\Observer\AddFieldsToResponseObserver::class,
86 'coreRegistry' => $this->coreRegistryMock,
87 'payment' => $this->paymentMock,
88 'session' => $this->sessionMock,
89 'storeManager' => $this->storeManagerMock,
103 $observerMock = $this->getMockBuilder(\
Magento\Framework\Event\Observer::class)
104 ->disableOriginalConstructor()
106 $orderMock = $this->getMockBuilder(\
Magento\Sales\Model\Order::class)
107 ->disableOriginalConstructor()
109 $orderPaymentMock = $this->getMockBuilder(\
Magento\Sales\Model\Order\Payment::class)
110 ->disableOriginalConstructor()
112 $instanceMock = $this->getMockBuilder(\
Magento\Authorizenet\Model\Directpost::class)
113 ->disableOriginalConstructor()
115 $requestToAuthorizenetMock = $this->getMockBuilder(\
Magento\Authorizenet\Model\Directpost\Request::class)
116 ->disableOriginalConstructor()
117 ->setMethods([
'setControllerActionName',
'setIsSecure',
'getData'])
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()
127 $this->coreRegistryMock->expects($this->once())
129 ->with(
'directpost_order')
130 ->willReturn($orderMock);
131 $orderMock->expects($this->once())
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))
142 ->willReturn($testData[
'payment.getCode']);
143 $observerMock->expects($this->atLeastOnce())
145 ->willReturnMap($testData[
'observer.getData']);
146 $this->resultMock->expects($this->once())
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')
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())
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())
185 ->willReturn($testData[
'requestToAuthorizenet.getData']);
186 $this->resultMock->expects($this->once())
188 ->with($testData[
'result.setData']);
190 $this->addFieldsToResponseObserver->execute($observerMock);
201 'field-1' =>
'field-value-1',
202 'field-2' =>
'field-value-2',
203 'field-3' =>
'field-value-3',
205 $secure =
'test-currently-secure';
206 $controllerName =
'test-controller-name';
207 $incrementId =
'0000000001';
208 $paymentCode =
'test-payment-code';
212 'orderPayment.getMethod' => $paymentCode,
213 'payment.getCode' => $paymentCode,
214 'observer.getData' => [
218 'result.getData' => [
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' => [
231 'test-payment-code' => [
232 'fields' => $requestFields
$addFieldsToResponseObserver
testAddFieldsToResponseSuccess()
getAddFieldsToResponseSuccessTestData()