commerce-8.x-2.8/modules/payment/tests/src/Kernel/Entity/PaymentMethodTest.php
modules/payment/tests/src/Kernel/Entity/PaymentMethodTest.php
<?php namespace Drupal\Tests\commerce_payment\Kernel\Entity; use Drupal\commerce_order\Entity\OrderItemType; use Drupal\commerce_payment\Entity\PaymentGateway; use Drupal\commerce_payment\Entity\PaymentMethod; use Drupal\commerce_payment\Plugin\Commerce\PaymentMethodType\CreditCard; use Drupal\profile\Entity\Profile; use Drupal\Tests\commerce\Kernel\CommerceKernelTestBase; /** * Tests the payment method entity. * * @coversDefaultClass \Drupal\commerce_payment\Entity\PaymentMethod * * @group commerce */ class PaymentMethodTest extends CommerceKernelTestBase { /** * A sample user. * * @var \Drupal\user\UserInterface */ protected $user; /** * Modules to enable. * * @var array */ public static $modules = [ 'entity_reference_revisions', 'profile', 'state_machine', 'commerce_product', 'commerce_order', 'commerce_payment', 'commerce_payment_example', ]; /** * {@inheritdoc} */ protected function setUp() { parent::setUp(); $this->installEntitySchema('profile'); $this->installEntitySchema('commerce_order'); $this->installEntitySchema('commerce_order_item'); $this->installEntitySchema('commerce_payment_method'); $this->installConfig('commerce_order'); $this->installConfig('commerce_payment'); // An order item type that doesn't need a purchasable entity, for simplicity. OrderItemType::create([ 'id' => 'test', 'label' => 'Test', 'orderType' => 'default', ])->save(); PaymentGateway::create([ 'id' => 'example', 'label' => 'Example', 'plugin' => 'example_onsite', ])->save(); $user = $this->createUser(); $this->user = $this->reloadEntity($user); } /** * @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 */ public function testPaymentMethod() { /** @var \Drupal\profile\Entity\ProfileInterface $profile */ $profile = Profile::create([ 'type' => 'customer', ]); $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->assertEquals(NULL, $payment_method->getOwner()); $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()); } }