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());
 }