You are here

public function PermissionEventTest::testIteratorAggregate in Organic groups 8

Check that the iterator has looped over all permissions correctly.

@covers ::getIterator

@dataProvider permissionsProvider

Parameters

\Drupal\og\PermissionInterface[] $permissions: An array of test permissions.

string $entity_type_id: The entity type ID of the group type to which the permissions apply.

string $bundle_id: The bundle ID of the group type to which the permissions apply.

array $group_content_bundle_ids: An array of group content bundle IDs to which the permissions apply, keyed by group content entity type ID.

File

tests/src/Unit/PermissionEventTest.php, line 574

Class

PermissionEventTest
Tests permission events.

Namespace

Drupal\Tests\og\Unit

Code

public function testIteratorAggregate(array $permissions, $entity_type_id, $bundle_id, array $group_content_bundle_ids) {
  $event = new PermissionEvent($entity_type_id, $bundle_id, $group_content_bundle_ids);
  $event
    ->setPermissions($permissions);
  foreach ($event as $name => $permission) {
    $expected_permission = reset($permissions);
    $expected_name = key($permissions);
    $this
      ->assertEquals($expected_name, $name);
    $this
      ->assertEquals($expected_permission, $permission);
    array_shift($permissions);
  }

  // Check that the iterator has looped over all permissions correctly.
  $this
    ->assertEmpty($permissions);
}