コード例 #1
0
 function it_marks_order_as_partially_paid_if_one_of_the_payment_is_processing(FactoryInterface $stateMachineFactory, StateMachineInterface $stateMachine, OrderInterface $order, PaymentInterface $payment1, PaymentInterface $payment2)
 {
     $payment1->getAmount()->willReturn(6000);
     $payment1->getState()->willReturn(PaymentInterface::STATE_PROCESSING);
     $payment2->getAmount()->willReturn(4000);
     $payment2->getState()->willReturn(PaymentInterface::STATE_COMPLETED);
     $payments = new ArrayCollection([$payment1->getWrappedObject(), $payment2->getWrappedObject()]);
     $order->hasPayments()->willReturn(true);
     $order->getPayments()->willReturn($payments);
     $order->getPaymentState()->willReturn(OrderPaymentStates::STATE_AWAITING_PAYMENT);
     $order->getTotal()->willReturn(10000);
     $stateMachineFactory->get($order, OrderPaymentTransitions::GRAPH)->willReturn($stateMachine);
     $stateMachine->can(OrderPaymentTransitions::TRANSITION_PARTIALLY_PAY)->willReturn(true);
     $stateMachine->apply(OrderPaymentTransitions::TRANSITION_PARTIALLY_PAY)->shouldBeCalled();
     $this->resolve($order);
 }
コード例 #2
0
 function it_sets_payment_method_from_last_failed_payment_during_processing($paymentFactory, PaymentInterface $payment, PaymentInterface $failedPayment, OrderInterface $order, PaymentMethodInterface $paymentMethodFromLastFailedPayment)
 {
     $payments = new ArrayCollection();
     $payments->add($failedPayment->getWrappedObject());
     $order->getPayments()->willReturn($payments);
     $order->getState()->willReturn(OrderInterface::STATE_NEW);
     $order->getLastNewPayment()->willReturn(null);
     $order->getTotal()->willReturn(1234);
     $order->getCurrencyCode()->willReturn('EUR');
     $paymentFactory->createWithAmountAndCurrencyCode(1234, 'EUR')->willReturn($payment);
     $failedPayment->getState()->willReturn(PaymentInterface::STATE_FAILED);
     $failedPayment->getMethod()->willReturn($paymentMethodFromLastFailedPayment);
     $payment->setMethod($paymentMethodFromLastFailedPayment)->shouldBeCalled();
     $payment->setOrder($order)->shouldBeCalled();
     $order->addPayment($payment)->shouldBeCalled();
     $this->process($order);
 }