commerce-8.x-2.8/modules/order/tests/src/Unit/Plugin/Commerce/Condition/OrderCustomerRoleTest.php
modules/order/tests/src/Unit/Plugin/Commerce/Condition/OrderCustomerRoleTest.php
<?php
namespace Drupal\Tests\commerce_order\Unit\Plugin\Commerce\Condition;
use Drupal\commerce_order\Entity\OrderInterface;
use Drupal\commerce_order\Plugin\Commerce\Condition\OrderCustomerRole;
use Drupal\Tests\UnitTestCase;
use Drupal\user\UserInterface;
/**
* @coversDefaultClass \Drupal\commerce_order\Plugin\Commerce\Condition\OrderCustomerRole
* @group commerce
*/
class OrderCustomerRoleTest extends UnitTestCase {
/**
* ::covers evaluate.
*/
public function testAnonymousCustomer() {
$condition = new OrderCustomerRole([
'roles' => ['authenticated'],
], 'order_customer_role', ['entity_type' => 'commerce_order']);
$order = $this->prophesize(OrderInterface::class);
$order->getEntityTypeId()->willReturn('commerce_order');
$order->getCustomer()->willReturn(NULL);
$order = $order->reveal();
$this->assertFalse($condition->evaluate($order));
$condition->setConfiguration(['roles' => ['anonymous', 'authenticated']]);
$this->assertTrue($condition->evaluate($order));
}
/**
* ::covers evaluate.
*/
public function testAuthenticatedCustomer() {
$condition = new OrderCustomerRole([
'roles' => ['merchant'],
], 'order_customer_role', ['entity_type' => 'commerce_order']);
$customer = $this->prophesize(UserInterface::class);
$customer->getRoles()->willReturn(['authenticated']);
$customer = $customer->reveal();
$order = $this->prophesize(OrderInterface::class);
$order->getEntityTypeId()->willReturn('commerce_order');
$order->getCustomer()->willReturn($customer);
$order = $order->reveal();
$this->assertFalse($condition->evaluate($order));
$condition->setConfiguration(['roles' => ['authenticated', 'merchant']]);
$this->assertTrue($condition->evaluate($order));
}
}
