You are here

public function OrderPaymentGatewayTest::testOrderPaymentGateway in Commerce Core 8.2

Covers evaluate.

File

modules/payment/tests/src/Unit/Plugin/Commerce/Condition/OrderPaymentGatewayTest.php, line 41

Class

OrderPaymentGatewayTest
@coversDefaultClass \Drupal\commerce_payment\Plugin\Commerce\Condition\OrderPaymentGateway @group commerce

Namespace

Drupal\Tests\commerce_payment\Unit\Plugin\Commerce\Condition

Code

public function testOrderPaymentGateway() {
  $entity_reference_item = $this
    ->prophesize(EntityReferenceItem::class);
  $entity_reference_item
    ->getValue()
    ->willReturn([
    'target_id' => 'test_payment',
  ]);
  $entity_reference_item_list = $this
    ->prophesize(EntityReferenceFieldItemList::class);
  $entity_reference_item_list
    ->isEmpty()
    ->willReturn(FALSE);
  $entity_reference_item_list
    ->first()
    ->willReturn($entity_reference_item
    ->reveal());
  $entity_reference_item_list = $entity_reference_item_list
    ->reveal();
  $order = $this
    ->prophesize(OrderInterface::class);
  $order
    ->getEntityTypeId()
    ->willReturn('commerce_order');
  $order
    ->get('payment_gateway')
    ->willReturn($entity_reference_item_list);
  $order = $order
    ->reveal();
  $condition = new OrderPaymentGateway([
    'payment_gateways' => [],
  ], 'order_payment_gateway', [
    'entity_type' => 'commerce_order',
  ]);
  $this
    ->assertFalse($condition
    ->evaluate($order));
  $condition = new OrderPaymentGateway([
    'payment_gateways' => [
      'cash_on_delivery',
      'bank_transfer',
    ],
  ], 'order_payment_gateway', [
    'entity_type' => 'commerce_order',
  ]);
  $this
    ->assertFalse($condition
    ->evaluate($order));
  $condition = new OrderPaymentGateway([
    'payment_gateways' => [
      'cash_on_delivery',
      'test_payment',
    ],
  ], 'order_payment_gateway', [
    'entity_type' => 'commerce_order',
  ]);
  $this
    ->assertTrue($condition
    ->evaluate($order));
}