public function PaymentTest::testPreSave in Commerce Core 8.2
Tests the preSave logic.
@covers ::preSave
File
- modules/payment/ tests/ src/ Kernel/ Entity/ PaymentTest.php, line 220 
Class
- PaymentTest
- Tests the payment entity.
Namespace
Drupal\Tests\commerce_payment\Kernel\EntityCode
public function testPreSave() {
  $request_time = \Drupal::time()
    ->getRequestTime();
  /** @var \Drupal\commerce_payment\Entity\PaymentInterface $payment */
  $payment = Payment::create([
    'type' => 'payment_default',
    'payment_gateway' => 'example',
    'order_id' => $this->order
      ->id(),
    'amount' => new Price('30', 'USD'),
    'state' => 'authorization',
  ]);
  $this
    ->assertEmpty($payment
    ->getPaymentGatewayMode());
  $this
    ->assertEmpty($payment
    ->getRefundedAmount());
  $this
    ->assertEmpty($payment
    ->getAuthorizedTime());
  $this
    ->assertEmpty($payment
    ->getCompletedTime());
  // Confirm that getBalance() works before the payment is saved.
  $this
    ->assertEquals(new Price('30', 'USD'), $payment
    ->getBalance());
  $payment
    ->save();
  $this
    ->assertEquals('test', $payment
    ->getPaymentGatewayMode());
  $this
    ->assertEquals(new Price('0', 'USD'), $payment
    ->getRefundedAmount());
  $this
    ->assertEquals($request_time, $payment
    ->getAuthorizedTime());
  $this
    ->assertEmpty($payment
    ->getCompletedTime());
  $payment
    ->setState('completed');
  $payment
    ->save();
  $this
    ->assertEquals($request_time, $payment
    ->getCompletedTime());
}