/** * @param OrderInterface $order * * @return null|PaymentInterface */ private function getLastPayment(OrderInterface $order) { $lastPayment = $order->getLastPayment(PaymentInterface::STATE_CANCELLED); if (null === $lastPayment) { $lastPayment = $order->getLastPayment(PaymentInterface::STATE_FAILED); } return $lastPayment; }
/** * {@inheritdoc} */ private function setPaymentMethodIfNeeded(OrderInterface $order, PaymentInterface $payment) { $lastCancelledPayment = $order->getLastPayment(PaymentInterface::STATE_CANCELLED); $lastNewPayment = $order->getLastPayment(PaymentInterface::STATE_NEW); if (!$lastNewPayment && $lastCancelledPayment) { $payment->setMethod($lastCancelledPayment->getMethod()); } }
function it_does_not_set_payment_method_from_last_cancelled_payment_during_processing_if_new_payment_exists(PaymentFactoryInterface $paymentFactory, PaymentInterface $newPaymentReadyToPay, PaymentInterface $cancelledPayment, PaymentInterface $payment, OrderInterface $order) { $order->getTotal()->willReturn(1234); $order->getCurrency()->willReturn('EUR'); $order->getLastPayment(PaymentInterface::STATE_CANCELLED)->willReturn($cancelledPayment); $order->getLastPayment(PaymentInterface::STATE_NEW)->willReturn($newPaymentReadyToPay); $paymentFactory->createWithAmountAndCurrency(1234, 'EUR')->willReturn($payment); $payment->setMethod($cancelledPayment)->shouldNotBeCalled(); $order->addPayment($payment)->shouldBeCalled(); $this->processOrderPayments($order); }
/** * @param OrderInterface $order * * @return PaymentInterface|null */ private function getLastPayment(OrderInterface $order) { $lastCancelledPayment = $order->getLastPayment(PaymentInterface::STATE_CANCELLED); if (null !== $lastCancelledPayment) { return $lastCancelledPayment; } $lastFailedPayment = $order->getLastPayment(PaymentInterface::STATE_FAILED); if (null !== $lastFailedPayment) { return $lastFailedPayment; } return null; }
function it_does_not_set_order_payment_if_it_cannot_be_provided(OrderInterface $order, OrderPaymentProviderInterface $orderPaymentProvider) { $order->getState()->willReturn(OrderInterface::STATE_CART); $order->getLastPayment(PaymentInterface::STATE_CART)->willReturn(null); $orderPaymentProvider->provideOrderPayment($order, PaymentInterface::STATE_CART)->willThrow(NotProvidedOrderPaymentException::class); $order->addPayment(Argument::any())->shouldNotBeCalled(); $this->process($order); }
function it_tries_to_pay_again(SharedStorageInterface $sharedStorage, OrderRepositoryInterface $orderRepository, PaypalApiMocker $paypalApiMocker, OrderPaymentsPageInterface $orderPaymentsPage, OrderInterface $order, CustomerInterface $customer, UserInterface $user, PaymentInterface $payment) { $sharedStorage->get('user')->willReturn($user); $user->getCustomer()->willReturn($customer); $orderRepository->findByCustomer($customer)->willReturn([$order]); $order->getLastPayment()->willReturn($payment); $paypalApiMocker->mockApiPaymentInitializeResponse()->shouldBeCalled(); $orderPaymentsPage->clickPayButtonForGivenPayment($payment)->shouldBeCalled(); $this->iTryToPayAgain(); }
function it_sets_orders_total_on_payment_amount_when_payment_is_new(OrderInterface $order, PaymentInterface $payment) { $order->getState()->willReturn(OrderInterface::STATE_NEW); $order->getTotal()->willReturn(123); $order->getCurrencyCode()->willReturn('EUR'); $payment->getState()->willReturn(PaymentInterface::STATE_NEW); $order->getLastPayment(PaymentInterface::STATE_NEW)->willReturn($payment); $payment->setAmount(123)->shouldBeCalled(); $payment->setCurrencyCode('EUR')->shouldBeCalled(); $this->process($order); }
/** * @Given /^(this order) is already paid$/ */ public function thisOrderIsAlreadyPaid(OrderInterface $order) { $payment = $order->getLastPayment(); $this->stateMachineFactory->get($payment, PaymentTransitions::GRAPH)->apply(PaymentTransitions::TRANSITION_COMPLETE); $this->objectManager->flush(); }
function it_throws_exception_if_payment_method_cannot_be_resolved_for_provided_payment(OrderInterface $order, PaymentFactoryInterface $paymentFactory, PaymentInterface $lastFailedPayment, PaymentInterface $newPayment) { $order->getTotal()->willReturn(1000); $order->getCurrencyCode()->willReturn('USD'); $order->getLastPayment(PaymentInterface::STATE_CANCELLED)->willReturn(null); $order->getLastPayment(PaymentInterface::STATE_FAILED)->willReturn($lastFailedPayment); $lastFailedPayment->getMethod()->willReturn(null); $paymentFactory->createWithAmountAndCurrencyCode(1000, 'USD')->willReturn($newPayment); $this->shouldThrow(NotProvidedOrderPaymentException::class)->during('provideOrderPayment', [$order, PaymentInterface::STATE_NEW]); }
/** * @param OrderInterface $order * * @return null|PaymentInterface */ private function getLastPayment(OrderInterface $order) { return $order->getLastPayment(PaymentInterface::STATE_CANCELLED) ?: $order->getLastPayment(PaymentInterface::STATE_FAILED); }