You are here

function CurrencyAccessControlHandlerTest::testCheckAccess in Currency 8.3

@covers ::checkAccess

@dataProvider providerTestCheckAccess

File

tests/src/Unit/Entity/Currency/CurrencyAccessControlHandlerTest.php, line 95

Class

CurrencyAccessControlHandlerTest
@coversDefaultClass Drupal\currency\Entity\Currency\CurrencyAccessControlHandler

Namespace

Drupal\Tests\currency\Unit\Entity\Currency

Code

function testCheckAccess($expected_value, $operation, $has_permission, $permission, $entity_status = FALSE, $currency_code = NULL) {
  $account = $this
    ->createMock(AccountInterface::class);
  $account
    ->expects($this
    ->any())
    ->method('hasPermission')
    ->with($permission)
    ->willReturn((bool) $has_permission);
  $language = $this
    ->createMock(LanguageInterface::class);
  $currency = $this
    ->createMock(CurrencyInterface::class);
  $currency
    ->expects($this
    ->any())
    ->method('getCurrencyCode')
    ->willReturn($currency_code);
  $currency
    ->expects($this
    ->any())
    ->method('language')
    ->willReturn($language);
  $currency
    ->expects($this
    ->any())
    ->method('status')
    ->willReturn($entity_status);
  $this->moduleHandler
    ->expects($this
    ->any())
    ->method('invokeAll')
    ->willReturn([]);
  $method = new \ReflectionMethod($this->sut, 'checkAccess');
  $method
    ->setAccessible(TRUE);
  $this
    ->assertSame($expected_value, $method
    ->invoke($this->sut, $currency, $operation, $account)
    ->isAllowed());
}