localgov_microsites_group-4.1.0/tests/src/Traits/GroupCreationTrait.php
tests/src/Traits/GroupCreationTrait.php
<?php
namespace Drupal\Tests\localgov_microsites_group\Traits;
/**
* Provides methods to create groups and group types.
*
* This trait is meant to be used only by test classes.
*/
trait GroupCreationTrait {
/**
* The entity type manager service.
*
* @var \Drupal\Core\Entity\EntityTypeManagerInterface
*/
protected $entityTypeManager;
/**
* Creates a group.
*
* @param array $values
* (optional) The values used to create the entity.
*
* @return \Drupal\group\Entity\Group
* The created group entity.
*/
protected function createGroup(array $values = []) {
$storage = $this->getEntityTypeManager()->getStorage('group');
$group = $storage->create($values + [
'type' => 'default',
'label' => $this->randomString(),
]);
$group->enforceIsNew();
$storage->save($group);
return $group;
}
/**
* Creates a group type.
*
* @param array $values
* (optional) The values used to create the entity.
*
* @return \Drupal\group\Entity\GroupType
* The created group type entity.
*/
protected function createGroupType(array $values = []) {
$storage = $this->getEntityTypeManager()->getStorage('group_type');
$group_type = $storage->create($values + [
'id' => $this->randomMachineName(),
'label' => $this->randomString(),
]);
$storage->save($group_type);
return $group_type;
}
/**
* Creates a group role.
*
* @param array $values
* (optional) The values used to create the entity.
*
* @return \Drupal\group\Entity\GroupRole
* The created group role entity.
*/
protected function createGroupRole(array $values = []) {
$storage = $this->entityTypeManager->getStorage('group_role');
$group_role = $storage->create($values + [
'id' => $this->randomMachineName(),
'label' => $this->randomString(),
]);
$storage->save($group_role);
return $group_role;
}
/**
* Returns the entity type manager service to use.
*
* @return \Drupal\Core\Entity\EntityTypeManagerInterface
* The entity type manager service.
*/
protected function getEntityTypeManager() {
if (empty($this->entityTypeManager)) {
$this->entityTypeManager = \Drupal::service('entity_type.manager');
}
return $this->entityTypeManager;
}
}
