20 use PHPUnit\Framework\MockObject_MockObject as MockObject;
41 $this->gateway = $this->getMockBuilder(Gateway::class)
42 ->disableOriginalConstructor()
45 $this->orderSender = $this->getMockBuilder(OrderSender::class)
46 ->disableOriginalConstructor()
49 $this->_objectManager->addSharedInstance($this->gateway, Gateway::class);
50 $this->_objectManager->addSharedInstance($this->orderSender, OrderSender::class);
58 $this->_objectManager->removeSharedInstance(Gateway::class);
59 $this->_objectManager->removeSharedInstance(OrderSender::class);
74 $orderIncrementId =
'000000045';
75 $this->withRequest($orderIncrementId, $resultCode);
76 $this->withGatewayResponse($orderIncrementId, $resultCode);
78 $this->
dispatch(
'paypal/payflow/silentPost');
80 self::assertEquals(200, $this->
getResponse()->getStatusCode());
82 $order = $this->getOrder($orderIncrementId);
83 self::assertEquals($orderState,
$order->getState());
96 [Payflowlink::RESPONSE_CODE_APPROVED, Order::STATE_PROCESSING, Order::STATE_PROCESSING],
97 [Payflowlink::RESPONSE_CODE_FRAUDSERVICE_FILTER, Order::STATE_PAYMENT_REVIEW, Order::STATUS_FRAUD],
109 $orderIncrementId =
'000000045';
110 $resultCode = Payflowlink::RESPONSE_CODE_DECLINED_BY_FILTER;
111 $this->withRequest($orderIncrementId, $resultCode);
112 $this->withGatewayResponse($orderIncrementId, $resultCode);
114 $logger = $this->getMockBuilder(Monolog::class)
115 ->disableOriginalConstructor()
117 $this->_objectManager->addSharedInstance(
$logger, Monolog::class);
122 ->with(self::equalTo($exception));
124 $this->
dispatch(
'paypal/payflow/silentPost');
126 self::assertEquals(200, $this->
getResponse()->getStatusCode());
128 $this->_objectManager->removeSharedInstance(Monolog::class);
138 private function withRequest($orderIncrementId, $resultCode)
141 'INVNUM' => $orderIncrementId,
143 'PNREF' =>
'A21CP234KLB8',
144 'USER2' =>
'cf7i85d01ed7c92223031afb4rdl2f1f',
145 'RESULT' => $resultCode,
158 private function withGatewayResponse($orderIncrementId, $resultCode)
161 'custref' => $orderIncrementId,
162 'origresult' => $resultCode,
163 'respmsg' =>
'Response message from PayPal gateway' 165 $this->gateway->method(
'postRequest')
175 private function getOrder($incrementId)
178 $filterBuilder = $this->_objectManager->get(FilterBuilder::class);
181 ->setValue($incrementId)
190 $orderRepository = $this->_objectManager->get(OrderRepositoryInterface::class);
testSuccessfulNotification($resultCode, $orderState, $orderStatus)
responseCodeDataProvider()
testFraudulentNotification()
dispatch(RequestInterface $request)