3 namespace Drupal\Tests\user\Kernel;
5 use Drupal\KernelTests\KernelTestBase;
6 use Drupal\user\Entity\User;
7 use Drupal\user\RoleInterface;
10 * Tests the user entity class.
13 * @see \Drupal\user\Entity\User
15 class UserEntityTest extends KernelTestBase {
22 public static $modules = ['system', 'user', 'field'];
25 * Tests some of the methods.
27 * @see \Drupal\user\Entity\User::getRoles()
28 * @see \Drupal\user\Entity\User::addRole()
29 * @see \Drupal\user\Entity\User::removeRole()
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();
39 'roles' => ['test_role_one'],
41 $user = User::create($values);
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());
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());
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());
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());
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());