Author: Anna Walasek (anna.walasek@lakion.com)
Inheritance: extends Sylius\Component\Payment\Repository\PaymentMethodRepositoryInterface
 function it_returns_empty_collection_if_there_is_no_enabled_payment_methods_for_order_channel(PaymentInterface $payment, OrderInterface $order, ChannelInterface $channel, PaymentMethodRepositoryInterface $paymentMethodRepository)
 {
     $payment->getOrder()->willReturn($order);
     $order->getChannel()->willReturn($channel);
     $paymentMethodRepository->findEnabledForChannel($channel)->willReturn([]);
     $this->getSupportedMethods($payment)->shouldReturn([]);
 }
 function it_returns_first_payment_method_from_availables_which_is_enclosed_in_channel(CorePaymentInterface $payment, PaymentMethodRepositoryInterface $paymentMethodRepository, PaymentMethodInterface $firstPaymentMethod, PaymentMethodInterface $secondPaymentMethod, ChannelInterface $channel, OrderInterface $order)
 {
     $payment->getOrder()->willReturn($order);
     $order->getChannel()->willReturn($channel);
     $paymentMethodRepository->findEnabledForChannel($channel)->willReturn([$firstPaymentMethod, $secondPaymentMethod]);
     $this->getDefaultPaymentMethod($payment)->shouldReturn($firstPaymentMethod);
 }
 /**
  * {@inheritdoc}
  */
 public function getDefaultPaymentMethod(PaymentInterface $subject)
 {
     /** @var CorePaymentInterface $subject */
     Assert::isInstanceOf($subject, CorePaymentInterface::class);
     /** @var ChannelInterface $channel */
     $channel = $subject->getOrder()->getChannel();
     $paymentMethods = $this->paymentMethodRepository->findEnabledForChannel($channel);
     if (empty($paymentMethods)) {
         throw new UnresolvedDefaultPaymentMethodException();
     }
     return $paymentMethods[0];
 }
Esempio n. 4
0
 /**
  * @param OrderInterface $order
  */
 private function selectPayment(OrderInterface $order)
 {
     $paymentMethod = $this->faker->randomElement($this->paymentMethodRepository->findEnabledForChannel($order->getChannel()));
     Assert::notNull($paymentMethod, 'Payment method should not be null.');
     foreach ($order->getPayments() as $payment) {
         $payment->setMethod($paymentMethod);
     }
     $this->applyCheckoutStateTransition($order, OrderCheckoutTransitions::TRANSITION_SELECT_PAYMENT);
 }
 /**
  * {@inheritdoc}
  */
 public function getSupportedMethods(BasePaymentInterface $payment)
 {
     Assert::true($this->supports($payment), 'This payment method is not support by resolver');
     return $this->paymentMethodRepository->findEnabledForChannel($payment->getOrder()->getChannel());
 }