function PermissionsHashGeneratorTest::testGenerateCache

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Session/PermissionsHashGeneratorTest.php \Drupal\Tests\Core\Session\PermissionsHashGeneratorTest::testGenerateCache()

Tests the generate method's caching.

@covers ::generate

File

core/tests/Drupal/Tests/Core/Session/PermissionsHashGeneratorTest.php, line 158

Class

PermissionsHashGeneratorTest
@coversDefaultClass \Drupal\Core\Session\PermissionsHashGenerator[[api-linebreak]] @group Session

Namespace

Drupal\Tests\Core\Session

Code

public function testGenerateCache() : void {
  $permissions = new CalculatedPermissions(new RefinableCalculatedPermissions());
  $this->processor
    ->processAccessPolicies($this->account1)
    ->willReturn($permissions);
  $this->processor
    ->processAccessPolicies($this->account2)
    ->willReturn($permissions);
  // Test that set is called with the right cache ID.
  $this->staticCache
    ->set('permissions_hash_1', 'no-access-policies', Cache::PERMANENT, [])
    ->shouldBeCalledOnce();
  $this->staticCache
    ->set('permissions_hash_2', 'no-access-policies', Cache::PERMANENT, [])
    ->shouldBeCalledOnce();
  $this->permissionsHash
    ->generate($this->account1);
  $this->permissionsHash
    ->generate($this->account2);
  // Verify that ::set() isn't called more when ::get() returns something.
  $cache_return = new \stdClass();
  $cache_return->data = 'no-access-policies';
  $this->staticCache
    ->get('permissions_hash_1')
    ->willReturn($cache_return);
  $this->staticCache
    ->get('permissions_hash_2')
    ->willReturn($cache_return);
  $this->permissionsHash
    ->generate($this->account1);
  $this->permissionsHash
    ->generate($this->account2);
}

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