OpignoClassMembershipTest.php in Opigno class 3.x
File
tests/src/Functional/OpignoClassMembershipTest.php
View source
<?php
namespace Drupal\Tests\opigno_class\Functional;
use Drupal\Tests\BrowserTestBase;
class OpignoClassMembershipTest extends BrowserTestBase {
public static $modules = [
'entity_browser',
'media',
'opigno_class',
'multiselect',
'field_group',
'block',
'user',
];
public $user;
protected $entityTypeManager;
protected $groupCreator;
protected $accountSwitcher;
protected $defaultTheme = 'stable';
protected function setUp() {
parent::setUp();
\Drupal::service('module_installer')
->install([
'opigno_learning_path',
]);
$this->entityTypeManager = $this->container
->get('entity_type.manager');
$this->accountSwitcher = $this->container
->get('account_switcher');
$entityFieldManager = \Drupal::service('entity_field.manager');
$fields = $entityFieldManager
->getFieldDefinitions('group', 'learning_path');
if (isset($fields['field_learning_path_media_image'])) {
$fields['field_learning_path_media_image']
->delete();
}
$this->user = $this
->drupalCreateUser([
'administer site configuration',
]);
$this
->drupalLogin($this->user);
}
public function testLoad() {
$user = $this
->drupalCreateUser();
$entity_type_manager = \Drupal::service('entity_type.manager');
$class = $entity_type_manager
->getStorage('group')
->create([
'type' => 'opigno_class',
'label' => $this
->randomMachineName(),
'uid' => $this->user,
]);
$class
->enforceIsNew();
$class
->save();
$lp = $entity_type_manager
->getStorage('group')
->create([
'type' => 'learning_path',
'label' => $this
->randomMachineName(),
'uid' => $this->user,
]);
$lp
->enforceIsNew();
$lp
->save();
$lp
->addContent($class, 'subgroup:opigno_class');
$class
->addMember($user);
$members = $lp
->getMembers();
$this
->assertTrue($members, 'Error getting members of LP training');
$users_ids = [];
if ($members) {
foreach ($members as $member) {
$account = $member
->getUser();
$uid = $account
->id();
$users_ids[$uid] = $uid;
}
}
$this
->assertArrayHasKey($user
->id(), $users_ids, "User from Class wasn't added to Class LP training");
$class
->removeMember($user);
$members = $lp
->getMembers();
$this
->assertTrue($members, 'Error getting members of LP training');
$users_ids = [];
if ($members) {
foreach ($members as $member) {
$account = $member
->getUser();
$uid = $account
->id();
$users_ids[$uid] = $uid;
}
}
$this
->assertArrayNotHasKey($user
->id(), $users_ids, "User from Class wasn't removed from Class LP training");
}
}