1c501f049e705ba24eb25e985e1368c84cef4d5a
[yaffs-website] / web / core / modules / user / tests / src / Kernel / UserEntityTest.php
1 <?php
2
3 namespace Drupal\Tests\user\Kernel;
4
5 use Drupal\KernelTests\KernelTestBase;
6 use Drupal\user\Entity\User;
7 use Drupal\user\RoleInterface;
8
9 /**
10  * Tests the user entity class.
11  *
12  * @group user
13  * @see \Drupal\user\Entity\User
14  */
15 class UserEntityTest extends KernelTestBase {
16
17   /**
18    * Modules to enable.
19    *
20    * @var array
21    */
22   public static $modules = ['system', 'user', 'field'];
23
24   /**
25    * Tests some of the methods.
26    *
27    * @see \Drupal\user\Entity\User::getRoles()
28    * @see \Drupal\user\Entity\User::addRole()
29    * @see \Drupal\user\Entity\User::removeRole()
30    */
31   public function testUserMethods() {
32     $role_storage = $this->container->get('entity.manager')->getStorage('user_role');
33     $role_storage->create(['id' => 'test_role_one'])->save();
34     $role_storage->create(['id' => 'test_role_two'])->save();
35     $role_storage->create(['id' => 'test_role_three'])->save();
36
37     $values = [
38       'uid' => 1,
39       'roles' => ['test_role_one'],
40     ];
41     $user = User::create($values);
42
43     $this->assertTrue($user->hasRole('test_role_one'));
44     $this->assertFalse($user->hasRole('test_role_two'));
45     $this->assertEqual([RoleInterface::AUTHENTICATED_ID, 'test_role_one'], $user->getRoles());
46
47     $user->addRole('test_role_one');
48     $this->assertTrue($user->hasRole('test_role_one'));
49     $this->assertFalse($user->hasRole('test_role_two'));
50     $this->assertEqual([RoleInterface::AUTHENTICATED_ID, 'test_role_one'], $user->getRoles());
51
52     $user->addRole('test_role_two');
53     $this->assertTrue($user->hasRole('test_role_one'));
54     $this->assertTrue($user->hasRole('test_role_two'));
55     $this->assertEqual([RoleInterface::AUTHENTICATED_ID, 'test_role_one', 'test_role_two'], $user->getRoles());
56
57     $user->removeRole('test_role_three');
58     $this->assertTrue($user->hasRole('test_role_one'));
59     $this->assertTrue($user->hasRole('test_role_two'));
60     $this->assertEqual([RoleInterface::AUTHENTICATED_ID, 'test_role_one', 'test_role_two'], $user->getRoles());
61
62     $user->removeRole('test_role_one');
63     $this->assertFalse($user->hasRole('test_role_one'));
64     $this->assertTrue($user->hasRole('test_role_two'));
65     $this->assertEqual([RoleInterface::AUTHENTICATED_ID, 'test_role_two'], $user->getRoles());
66   }
67
68 }