public function ShipmentAccessControlHandlerTest::testAccess in Commerce Shipping 8.2
@covers ::checkAccess
File
- tests/src/ Kernel/ ShipmentAccessControlHandlerTest.php, line 29 
Class
- ShipmentAccessControlHandlerTest
- Tests the shipment access control.
Namespace
Drupal\Tests\commerce_shipping\KernelCode
public function testAccess() {
  $order = Order::create([
    'type' => 'default',
    'state' => 'canceled',
  ]);
  $order
    ->save();
  /** @var \Drupal\commerce_shipping\Entity\ShipmentInterface $shipment */
  $shipment = Shipment::create([
    'type' => 'default',
    'title' => 'Shipment',
    'order_id' => $order
      ->id(),
  ]);
  $shipment
    ->save();
  $shipment = $this
    ->reloadEntity($shipment);
  $account = $this
    ->createUser([], [
    'access administration pages',
  ]);
  $this
    ->assertFalse($shipment
    ->access('view', $account));
  $this
    ->assertFalse($shipment
    ->access('update', $account));
  $this
    ->assertFalse($shipment
    ->access('delete', $account));
  $account = $this
    ->createUser([], [
    'view commerce_order',
  ]);
  $this
    ->assertTrue($shipment
    ->access('view', $account));
  $this
    ->assertFalse($shipment
    ->access('update', $account));
  $this
    ->assertFalse($shipment
    ->access('delete', $account));
  $account = $this
    ->createUser([], [
    'update default commerce_order',
  ]);
  $this
    ->assertFalse($shipment
    ->access('view', $account));
  $this
    ->assertFalse($shipment
    ->access('update', $account));
  $this
    ->assertFalse($shipment
    ->access('delete', $account));
  $account = $this
    ->createUser([], [
    'manage default commerce_shipment',
  ]);
  $this
    ->assertFalse($shipment
    ->access('view', $account));
  $this
    ->assertTrue($shipment
    ->access('update', $account));
  $this
    ->assertTrue($shipment
    ->access('delete', $account));
  $account = $this
    ->createUser([], [
    'administer commerce_shipment',
  ]);
  $this
    ->assertTrue($shipment
    ->access('view', $account));
  $this
    ->assertTrue($shipment
    ->access('update', $account));
  $this
    ->assertTrue($shipment
    ->access('delete', $account));
  // Broken order reference.
  $shipment
    ->set('order_id', '999');
  $account = $this
    ->createUser([], [
    'manage default commerce_order_item',
  ]);
  $this
    ->assertFalse($shipment
    ->access('view', $account));
  $this
    ->assertFalse($shipment
    ->access('update', $account));
  $this
    ->assertFalse($shipment
    ->access('delete', $account));
}