function UserSessionTest::setUp

Same name and namespace in other branches
  1. 8.9.x core/tests/Drupal/Tests/Core/Session/UserSessionTest.php \Drupal\Tests\Core\Session\UserSessionTest::setUp()
  2. 10 core/tests/Drupal/Tests/Core/Session/UserSessionTest.php \Drupal\Tests\Core\Session\UserSessionTest::setUp()

Overrides UnitTestCase::setUp

File

core/tests/Drupal/Tests/Core/Session/UserSessionTest.php, line 57

Class

UserSessionTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Session%21UserSession.php/class/UserSession/9" title="An implementation of the user account interface for the global user." class="local">\Drupal\Core\Session\UserSession</a> @group Session

Namespace

Drupal\Tests\Core\Session

Code

protected function setUp() : void {
    parent::setUp();
    $roles = [];
    $roles['role_one'] = $this->getMockBuilder('Drupal\\user\\Entity\\Role')
        ->disableOriginalConstructor()
        ->onlyMethods([
        'hasPermission',
    ])
        ->getMock();
    $roles['role_one']->expects($this->any())
        ->method('hasPermission')
        ->willReturnMap([
        [
            'example permission',
            TRUE,
        ],
        [
            'another example permission',
            FALSE,
        ],
        [
            'last example permission',
            FALSE,
        ],
    ]);
    $roles['role_two'] = $this->getMockBuilder('Drupal\\user\\Entity\\Role')
        ->disableOriginalConstructor()
        ->onlyMethods([
        'hasPermission',
    ])
        ->getMock();
    $roles['role_two']->expects($this->any())
        ->method('hasPermission')
        ->willReturnMap([
        [
            'example permission',
            TRUE,
        ],
        [
            'another example permission',
            TRUE,
        ],
        [
            'last example permission',
            FALSE,
        ],
    ]);
    $roles['anonymous'] = $this->getMockBuilder('Drupal\\user\\Entity\\Role')
        ->disableOriginalConstructor()
        ->onlyMethods([
        'hasPermission',
    ])
        ->getMock();
    $roles['anonymous']->expects($this->any())
        ->method('hasPermission')
        ->willReturnMap([
        [
            'example permission',
            FALSE,
        ],
        [
            'another example permission',
            FALSE,
        ],
        [
            'last example permission',
            FALSE,
        ],
    ]);
    $role_storage = $this->getMockBuilder('Drupal\\user\\RoleStorage')
        ->setConstructorArgs([
        'role',
        new MemoryCache(),
    ])
        ->disableOriginalConstructor()
        ->onlyMethods([
        'loadMultiple',
    ])
        ->getMock();
    $role_storage->expects($this->any())
        ->method('loadMultiple')
        ->willReturnMap([
        [
            [],
            [],
        ],
        [
            NULL,
            $roles,
        ],
        [
            [
                'anonymous',
            ],
            [
                $roles['anonymous'],
            ],
        ],
        [
            [
                'anonymous',
                'role_one',
            ],
            [
                $roles['role_one'],
            ],
        ],
        [
            [
                'anonymous',
                'role_two',
            ],
            [
                $roles['role_two'],
            ],
        ],
        [
            [
                'anonymous',
                'role_one',
                'role_two',
            ],
            [
                $roles['role_one'],
                $roles['role_two'],
            ],
        ],
    ]);
    $entity_type_manager = $this->createMock('Drupal\\Core\\Entity\\EntityTypeManagerInterface');
    $entity_type_manager->expects($this->any())
        ->method('getStorage')
        ->with($this->equalTo('user_role'))
        ->willReturn($role_storage);
    $container = new ContainerBuilder();
    $container->set('entity_type.manager', $entity_type_manager);
    \Drupal::setContainer($container);
    $this->users['user_one'] = $this->createUserSession([
        'role_one',
    ]);
    $this->users['user_two'] = $this->createUserSession([
        'role_one',
        'role_two',
    ]);
    $this->users['user_three'] = $this->createUserSession([
        'role_two',
    ], TRUE);
    $this->users['user_last'] = $this->createUserSession();
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.