OrderPaymentGatewayTest.php in Commerce Core 8.2
File
modules/payment/tests/src/Unit/Plugin/Commerce/Condition/OrderPaymentGatewayTest.php
View source
<?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;
class OrderPaymentGatewayTest extends UnitTestCase {
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));
}
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));
}
}