You are here

public function OrderRefreshTest::testNeedsRefresh in Commerce Core 8.2

Tests the needsRefresh() logic.

File

modules/order/tests/src/Kernel/OrderRefreshTest.php, line 159

Class

OrderRefreshTest
Tests the order refresh process.

Namespace

Drupal\Tests\commerce_order\Kernel

Code

public function testNeedsRefresh() {
  $order_refresh = $this
    ->createOrderRefresh();

  // Non-draft order.
  $this->order->state = 'completed';
  $this
    ->assertEmpty($order_refresh
    ->needsRefresh($this->order));
  $this->order->state = 'draft';

  // Day-change, under refresh frequency.
  $order_refresh = $this
    ->createOrderRefresh(mktime(0, 1, 0, 2, 24, 2016));
  $this->order
    ->setChangedTime(mktime(23, 59, 59, 2, 23, 2016));
  $this
    ->assertNotEmpty($order_refresh
    ->needsRefresh($this->order));

  // Under refresh frequency.
  $order_refresh = $this
    ->createOrderRefresh(mktime(23, 12, 0, 2, 24, 2016));
  $this->order
    ->setChangedTime(mktime(23, 11, 0, 2, 24, 2016));
  $this
    ->assertEmpty($order_refresh
    ->needsRefresh($this->order));

  // Over refresh frequency.
  $order_refresh = $this
    ->createOrderRefresh(mktime(23, 10, 0, 2, 24, 2016));
  $this->order
    ->setChangedTime(mktime(23, 0, 0, 2, 24, 2016));
  $this
    ->assertNotEmpty($order_refresh
    ->needsRefresh($this->order));

  // Locked order.
  $this->order
    ->lock();
  $this
    ->assertFalse($order_refresh
    ->needsRefresh($this->order));
  $this->order
    ->unlock();
  $this
    ->assertTrue($order_refresh
    ->needsRefresh($this->order));
}