public function UserEntityTest::testUserMethods

Tests some of the methods.

See also

\Drupal\user\Plugin\Core\Entity\User::getRoles()

\Drupal\user\Plugin\Core\Entity\User::addRole()

\Drupal\user\Plugin\Core\Entity\User::removeRole()

File

drupal/core/modules/user/lib/Drupal/user/Tests/UserEntityTest.php, line 43
Contains \Drupal\user\Tests\UserEntityTest.

Class

UserEntityTest
Tests the user entity class.

Namespace

Drupal\user\Tests

Code

public function testUserMethods() {
  $role_storage = $this->container
    ->get('plugin.manager.entity')
    ->getStorageController('user_role');
  $role_storage
    ->create(array(
    'id' => 'test_role_one',
  ))
    ->save();
  $role_storage
    ->create(array(
    'id' => 'test_role_two',
  ))
    ->save();
  $role_storage
    ->create(array(
    'id' => 'test_role_three',
  ))
    ->save();
  $values = array(
    'roles' => array(
      Language::LANGCODE_DEFAULT => array(
        'test_role_one',
      ),
    ),
  );
  $user = new User($values, 'user');
  $this
    ->assertTrue($user
    ->hasRole('test_role_one'));
  $this
    ->assertFalse($user
    ->hasRole('test_role_two'));
  $this
    ->assertEqual(array(
    'test_role_one',
  ), $user
    ->getRoles());
  $user
    ->addRole('test_role_one');
  $this
    ->assertTrue($user
    ->hasRole('test_role_one'));
  $this
    ->assertFalse($user
    ->hasRole('test_role_two'));
  $this
    ->assertEqual(array(
    'test_role_one',
  ), $user
    ->getRoles());
  $user
    ->addRole('test_role_two');
  $this
    ->assertTrue($user
    ->hasRole('test_role_one'));
  $this
    ->assertTrue($user
    ->hasRole('test_role_two'));
  $this
    ->assertEqual(array(
    'test_role_one',
    'test_role_two',
  ), $user
    ->getRoles());
  $user
    ->removeRole('test_role_three');
  $this
    ->assertTrue($user
    ->hasRole('test_role_one'));
  $this
    ->assertTrue($user
    ->hasRole('test_role_two'));
  $this
    ->assertEqual(array(
    'test_role_one',
    'test_role_two',
  ), $user
    ->getRoles());
  $user
    ->removeRole('test_role_one');
  $this
    ->assertFalse($user
    ->hasRole('test_role_one'));
  $this
    ->assertTrue($user
    ->hasRole('test_role_two'));
  $this
    ->assertEqual(array(
    'test_role_two',
  ), $user
    ->getRoles());
}