commerce-8.x-2.8/modules/payment/tests/src/Unit/Plugin/Commerce/Condition/OrderPaymentGatewayTest.php
modules/payment/tests/src/Unit/Plugin/Commerce/Condition/OrderPaymentGatewayTest.php
<?php namespace Drupal\Tests\commerce_payment\Unit\Plugin\Commerce\Condition; use Drupal\commerce_order\Entity\OrderInterface; use Drupal\commerce_payment\Plugin\Commerce\Condition\OrderPaymentGateway; use Drupal\Core\Field\EntityReferenceFieldItemList; use Drupal\Core\Field\Plugin\Field\FieldType\EntityReferenceItem; use Drupal\Tests\UnitTestCase; /** * @coversDefaultClass \Drupal\commerce_payment\Plugin\Commerce\Condition\OrderPaymentGateway * @group commerce */ class OrderPaymentGatewayTest extends UnitTestCase { /** * ::covers evaluate. */ public function testIncompleteOrder() { $condition = new OrderPaymentGateway([ 'payment_gateways' => ['test'], ], 'order_payment_gateway', ['entity_type' => 'commerce_order']); $order = $this->prophesize(OrderInterface::class); $entity_reference_item = $this->prophesize(EntityReferenceItem::class); $entity_reference_item->isEmpty()->willReturn(TRUE); $entity_reference_item = $entity_reference_item->reveal(); $order = $this->prophesize(OrderInterface::class); $order->getEntityTypeId()->willReturn('commerce_order'); $order->get('payment_gateway')->willReturn($entity_reference_item); $order = $order->reveal(); $this->assertFalse($condition->evaluate($order)); } /** * Covers evaluate. */ 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)); } }