You are here

public function PaymentMethodTest::testPaymentMethod in Commerce Core 8.2

@covers ::getType @covers ::getPaymentGatewayId @covers ::getPaymentGatewayMode @covers ::getOwner @covers ::setOwner @covers ::getOwnerId @covers ::setOwnerId @covers ::getRemoteId @covers ::setRemoteId @covers ::getBillingProfile @covers ::setBillingProfile @covers ::isReusable @covers ::setReusable @covers ::isDefault @covers ::setDefault @covers ::isExpired @covers ::getExpiresTime @covers ::setExpiresTime @covers ::getCreatedTime @covers ::setCreatedTime

File

modules/payment/tests/src/Kernel/Entity/PaymentMethodTest.php, line 79

Class

PaymentMethodTest
Tests the payment method entity.

Namespace

Drupal\Tests\commerce_payment\Kernel\Entity

Code

public function testPaymentMethod() {

  /** @var \Drupal\profile\Entity\ProfileInterface $profile */
  $profile = Profile::create([
    'type' => 'customer',
    'address' => [
      'country_code' => 'US',
      'postal_code' => '53177',
      'locality' => 'Milwaukee',
      'address_line1' => 'Pabst Blue Ribbon Dr',
      'administrative_area' => 'WI',
      'given_name' => 'Frederick',
      'family_name' => 'Pabst',
    ],
  ]);
  $profile
    ->save();
  $profile = $this
    ->reloadEntity($profile);

  /** @var \Drupal\commerce_payment\Entity\PaymentMethodInterface $payment_method */
  $payment_method = PaymentMethod::create([
    'type' => 'credit_card',
    'payment_gateway' => 'example',
  ]);
  $payment_method
    ->save();
  $this
    ->assertInstanceOf(CreditCard::class, $payment_method
    ->getType());
  $this
    ->assertEquals('example', $payment_method
    ->getPaymentGatewayId());
  $this
    ->assertEquals('test', $payment_method
    ->getPaymentGatewayMode());
  $payment_method
    ->setOwner($this->user);
  $this
    ->assertEquals($this->user, $payment_method
    ->getOwner());
  $this
    ->assertEquals($this->user
    ->id(), $payment_method
    ->getOwnerId());
  $payment_method
    ->setOwnerId(0);
  $this
    ->assertInstanceOf(UserInterface::class, $payment_method
    ->getOwner());
  $this
    ->assertTrue($payment_method
    ->getOwner()
    ->isAnonymous());

  // Non-existent/deleted user ID.
  $payment_method
    ->setOwnerId(890);
  $this
    ->assertInstanceOf(UserInterface::class, $payment_method
    ->getOwner());
  $this
    ->assertTrue($payment_method
    ->getOwner()
    ->isAnonymous());
  $this
    ->assertEquals(890, $payment_method
    ->getOwnerId());
  $payment_method
    ->setOwnerId($this->user
    ->id());
  $this
    ->assertEquals($this->user, $payment_method
    ->getOwner());
  $this
    ->assertEquals($this->user
    ->id(), $payment_method
    ->getOwnerId());
  $payment_method
    ->setRemoteId('123456');
  $this
    ->assertEquals('123456', $payment_method
    ->getRemoteId());
  $payment_method
    ->setBillingProfile($profile);
  $this
    ->assertEquals($profile, $payment_method
    ->getBillingProfile());
  $this
    ->assertNotEmpty($payment_method
    ->isReusable());
  $payment_method
    ->setReusable(FALSE);
  $this
    ->assertEmpty($payment_method
    ->isReusable());
  $this
    ->assertFalse($payment_method
    ->isDefault());
  $payment_method
    ->setDefault(TRUE);
  $this
    ->assertTrue($payment_method
    ->isDefault());
  $this
    ->assertFalse($payment_method
    ->isExpired());
  $payment_method
    ->setExpiresTime(635879700);
  $this
    ->assertTrue($payment_method
    ->isExpired());
  $this
    ->assertEquals(635879700, $payment_method
    ->getExpiresTime());
  $payment_method
    ->setCreatedTime(635879700);
  $this
    ->assertEquals(635879700, $payment_method
    ->getCreatedTime());
}