mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 09:02:12 +00:00
Add test for IRI
This commit is contained in:
parent
51731afba4
commit
562c7a69a0
1 changed files with 71 additions and 1 deletions
|
|
@ -18,6 +18,7 @@ use PHPUnit\Framework\MockObject\MockObject;
|
|||
use PHPUnit\Framework\TestCase;
|
||||
use Sylius\Bundle\ApiBundle\Attribute\PaymentRequestActionAware;
|
||||
use Sylius\Bundle\ApiBundle\Command\Payment\AddPaymentRequest;
|
||||
use Sylius\Bundle\ApiBundle\Converter\IriToIdentifierConverterInterface;
|
||||
use Sylius\Bundle\ApiBundle\Serializer\ContextBuilder\PaymentRequestActionAwareContextBuilder;
|
||||
use Sylius\Bundle\PaymentBundle\Provider\DefaultActionProviderInterface;
|
||||
use Sylius\Component\Payment\Model\PaymentRequestInterface;
|
||||
|
|
@ -28,6 +29,8 @@ final class PaymentRequestActionAwareContextBuilderTest extends TestCase
|
|||
{
|
||||
private MockObject|SerializerContextBuilderInterface $decoratedContextBuilderMock;
|
||||
|
||||
private IriToIdentifierConverterInterface|MockObject $iriToIdentifierConverterMock;
|
||||
|
||||
private DefaultActionProviderInterface|MockObject $defaultActionProviderMock;
|
||||
|
||||
private PaymentRequestActionAwareContextBuilder $paymentRequestActionAwareContextBuilder;
|
||||
|
|
@ -35,8 +38,15 @@ final class PaymentRequestActionAwareContextBuilderTest extends TestCase
|
|||
protected function setUp(): void
|
||||
{
|
||||
$this->decoratedContextBuilderMock = $this->createMock(SerializerContextBuilderInterface::class);
|
||||
$this->iriToIdentifierConverterMock = $this->createMock(IriToIdentifierConverterInterface::class);
|
||||
$this->defaultActionProviderMock = $this->createMock(DefaultActionProviderInterface::class);
|
||||
$this->paymentRequestActionAwareContextBuilder = new PaymentRequestActionAwareContextBuilder($this->decoratedContextBuilderMock, PaymentRequestActionAware::class, PaymentRequestActionAware::DEFAULT_ARGUMENT_NAME, $this->defaultActionProviderMock);
|
||||
$this->paymentRequestActionAwareContextBuilder = new PaymentRequestActionAwareContextBuilder(
|
||||
$this->iriToIdentifierConverterMock,
|
||||
$this->decoratedContextBuilderMock,
|
||||
PaymentRequestActionAware::class,
|
||||
PaymentRequestActionAware::DEFAULT_ARGUMENT_NAME,
|
||||
$this->defaultActionProviderMock,
|
||||
);
|
||||
}
|
||||
|
||||
public function test_it_sets_action_as_a_constructor_argument(): void
|
||||
|
|
@ -56,6 +66,13 @@ final class PaymentRequestActionAwareContextBuilderTest extends TestCase
|
|||
])
|
||||
;
|
||||
|
||||
$this->iriToIdentifierConverterMock
|
||||
->expects($this->once())
|
||||
->method('isIdentifier')
|
||||
->with('cash_on_delivery')
|
||||
->willReturn(false)
|
||||
;
|
||||
|
||||
$this->defaultActionProviderMock
|
||||
->expects($this->once())
|
||||
->method('getActionFromPaymentMethodCode')
|
||||
|
|
@ -89,6 +106,59 @@ final class PaymentRequestActionAwareContextBuilderTest extends TestCase
|
|||
])
|
||||
;
|
||||
|
||||
$this->iriToIdentifierConverterMock
|
||||
->expects($this->once())
|
||||
->method('isIdentifier')
|
||||
->with('cash_on_delivery')
|
||||
->willReturn(false)
|
||||
;
|
||||
|
||||
$this->defaultActionProviderMock
|
||||
->expects($this->once())
|
||||
->method('getActionFromPaymentMethodCode')
|
||||
->with('cash_on_delivery')
|
||||
->willReturn(PaymentRequestInterface::ACTION_CAPTURE)
|
||||
;
|
||||
|
||||
$this->assertSame([
|
||||
'input' => ['class' => AddPaymentRequest::class],
|
||||
AbstractNormalizer::DEFAULT_CONSTRUCTOR_ARGUMENTS => [
|
||||
AddPaymentRequest::class => ['action' => PaymentRequestInterface::ACTION_CAPTURE],
|
||||
],
|
||||
], $this->paymentRequestActionAwareContextBuilder->createFromRequest($requestMock, true, []));
|
||||
}
|
||||
|
||||
public function test_it_sets_action_as_a_constructor_argument_when_payment_method_code_is_an_iri(): void
|
||||
{
|
||||
/** @var Request|MockObject $requestMock */
|
||||
$requestMock = $this->createMock(Request::class);
|
||||
$requestMock->expects($this->exactly(2))->method('toArray')->willReturn([
|
||||
'paymentMethodCode' => '/api/v2/shop/payment-methods/cash_on_delivery',
|
||||
]);
|
||||
|
||||
$this->decoratedContextBuilderMock
|
||||
->expects($this->once())
|
||||
->method('createFromRequest')
|
||||
->with($requestMock, true, [])
|
||||
->willReturn([
|
||||
'input' => ['class' => AddPaymentRequest::class],
|
||||
])
|
||||
;
|
||||
|
||||
$this->iriToIdentifierConverterMock
|
||||
->expects($this->once())
|
||||
->method('isIdentifier')
|
||||
->with('/api/v2/shop/payment-methods/cash_on_delivery')
|
||||
->willReturn(true)
|
||||
;
|
||||
|
||||
$this->iriToIdentifierConverterMock
|
||||
->expects($this->once())
|
||||
->method('getIdentifier')
|
||||
->with('/api/v2/shop/payment-methods/cash_on_delivery')
|
||||
->willReturn('cash_on_delivery')
|
||||
;
|
||||
|
||||
$this->defaultActionProviderMock
|
||||
->expects($this->once())
|
||||
->method('getActionFromPaymentMethodCode')
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue