You are here

public function PaymentMethodConfigurationAccessControlHandlerTest::testCheckAccessDisable in Payment 8.2

@covers ::checkAccess

@dataProvider providerTestCheckAccessDisable

File

tests/src/Unit/Entity/PaymentMethodConfiguration/PaymentMethodConfigurationAccessControlHandlerTest.php, line 221

Class

PaymentMethodConfigurationAccessControlHandlerTest
@coversDefaultClass \Drupal\payment\Entity\PaymentMethodConfiguration\PaymentMethodConfigurationAccessControlHandler

Namespace

Drupal\Tests\payment\Unit\Entity\PaymentMethodConfiguration

Code

public function testCheckAccessDisable($expected, $payment_method_configuration_status, $has_update_permission) {
  $operation = 'disable';
  $account = $this
    ->createMock(AccountInterface::class);
  $map = [
    [
      'payment.payment_method_configuration.update.any',
      $has_update_permission,
    ],
    [
      'payment.payment_method_configuration.update.own',
      FALSE,
    ],
  ];
  $account
    ->expects($this
    ->atLeastOnce())
    ->method('hasPermission')
    ->willReturnMap($map);
  $payment_method_configuration = $this
    ->getMockPaymentMethodConfiguration();
  $payment_method_configuration
    ->expects($this
    ->atLeastOnce())
    ->method('status')
    ->willReturn($payment_method_configuration_status);
  $this
    ->setUpLanguage($payment_method_configuration);
  $class = new \ReflectionClass($this->sut);
  $method = $class
    ->getMethod('checkAccess');
  $method
    ->setAccessible(TRUE);
  $this
    ->assertSame($expected, $method
    ->invokeArgs($this->sut, [
    $payment_method_configuration,
    $operation,
    $account,
  ])
    ->isAllowed());
}