public function BadgeRoleTest::testUserPresave in User Badges 8
File
- tests/src/Kernel/Entity/BadgeRoleTest.php, line 61
Class
- BadgeRoleTest
- Test role_id behavior on badges.
Namespace
Drupal\Tests\user_badges\Kernel\Entity
Code
public function testUserPresave() {
$user = User::create([
'name' => $this
->randomMachineName(),
]);
$user
->save();
$item_list = $user
->get('field_user_badges');
$this
->assertTrue($item_list
->isEmpty());
$user
->addRole($this->rids[1]);
$user
->save();
$this
->assertEquals($item_list
->getValue(), [
[
'target_id' => $this->badgeIds[2],
],
]);
$user
->removeRole($this->rids[1]);
$user
->save();
$this
->assertTrue($item_list
->isEmpty());
$user
->addRole($this->rids[0]);
$user
->save();
$this
->assertEquals($item_list
->getValue(), [
[
'target_id' => $this->badgeIds[1],
],
[
'target_id' => $this->badgeIds[2],
],
]);
$item_list
->appendItem($this->badgeIds[0]);
$this
->assertEquals($item_list
->count(), 3);
for ($i = 0; $i < 3; $i++) {
$this
->assertEquals($item_list
->get($i)
->getValue(), [
'target_id' => $this->badgeIds[($i + 1) % 3],
]);
}
$user
->save();
$this
->assertEquals($item_list
->count(), 3);
for ($i = 0; $i < 3; $i++) {
$this
->assertEquals($item_list
->get($i)
->getValue(), [
'target_id' => $this->badgeIds[($i + 1) % 3],
]);
}
}