public static function createFromArray(PaymentMethod $paymentMethod, array $paymentMethodDetails) { if ($paymentMethod->isIdeal()) { return IdealPaymentMethodDetails::fromArray($paymentMethodDetails); } if ($paymentMethod->isCreditCard()) { return CreditCardPaymentMethodDetails::fromArray($paymentMethodDetails); } if ($paymentMethod->isBankTransfer()) { return SepaPaymentMethodDetails::fromArray($paymentMethodDetails); } if ($paymentMethod->isSofort()) { return SofortPaymentMethodDetails::fromArray($paymentMethodDetails); } if ($paymentMethod->isBancontact()) { return BancontactPaymentMethodDetails::fromArray($paymentMethodDetails); } throw new \InvalidArgumentException('Provided payment method not supported.'); }
/** * @test */ public function itShouldConvertToArray() { $this->assertEquals(['consumer_name' => null, 'consumer_address' => null, 'consumer_city' => null, 'consumer_country' => null, 'consumer_iban' => null, 'consumer_bic' => null, 'reference' => null], SepaPaymentMethodDetails::fromArray([])->toArray()); }