/** * @covers ::executePaymentAccessCurrency * * @dataProvider providerTestExecutePaymentAccessCurrency */ public function testExecutePaymentAccessCurrency($expected, $supported_currencies, $payment_currency_code, $payment_amount) { $payment = $this->getMockPayment(); $payment->expects($this->atLeastOnce())->method('getAmount')->willReturn($payment_amount); $payment->expects($this->atLeastOnce())->method('getCurrencyCode')->willReturn($payment_currency_code); $this->sut->setPayment($payment); $this->sut->expects($this->atLeastOnce())->method('getSupportedCurrencies')->willReturn($supported_currencies); $account = $this->getMock(AccountInterface::class); $method = new \ReflectionMethod($this->sut, 'executePaymentAccessCurrency'); $method->setAccessible(TRUE); $this->assertSame($expected, $method->invoke($this->sut, $account)->isAllowed()); }