public function RecurringOrderManagerTest::testCloseOrderAlreadyPaidMarksTheOrderAsCompleted in Commerce Recurring Framework 8
@covers ::closeOrder
File
- tests/src/ Kernel/ RecurringOrderManagerTest.php, line 338 
Class
- RecurringOrderManagerTest
- @coversDefaultClass \Drupal\commerce_recurring\RecurringOrderManager @group commerce_recurring
Namespace
Drupal\Tests\commerce_recurring\KernelCode
public function testCloseOrderAlreadyPaidMarksTheOrderAsCompleted() {
  $order = $this->recurringOrderManager
    ->startRecurring($this->activeSubscription);
  // We set the total paid to the amount of the order, but don't set the order
  // as complete.
  $order
    ->set('total_paid', $order
    ->getTotalPrice())
    ->set('state', 'needs_payment')
    ->save();
  $order = $this
    ->reloadEntity($order);
  $this
    ->assertEquals('needs_payment', $order
    ->getState()
    ->getId());
  $this
    ->assertTrue($order
    ->isPaid());
  // We close an order that was already completed.
  $this->recurringOrderManager
    ->closeOrder($order);
  $order = $this
    ->reloadEntity($order);
  $this
    ->assertTrue($order
    ->isPaid());
  $this
    ->assertEquals('completed', $order
    ->getState()
    ->getId());
  /** @var \Drupal\commerce_payment\PaymentStorageInterface $payment_storage */
  $payment_storage = $this->container
    ->get('entity_type.manager')
    ->getStorage('commerce_payment');
  // No extra payment has been added.
  $payments = $payment_storage
    ->loadMultipleByOrder($order);
  $this
    ->assertCount(0, $payments);
}