[Test][Admin] Add contracts test for payment request

This commit is contained in:
Wojdylak 2024-03-07 13:31:01 +01:00 committed by Grzegorz Sadowski
parent 9054721d76
commit 24036f6832
No known key found for this signature in database
GPG key ID: EF87FF4E6E3BD364
5 changed files with 209 additions and 0 deletions

View file

@ -0,0 +1,66 @@
<?php
/*
* This file is part of the Sylius package.
*
* (c) Sylius Sp. z o.o.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
declare(strict_types=1);
namespace Sylius\Tests\Api\Admin;
use Sylius\Component\Payment\Model\PaymentRequestInterface;
use Sylius\Tests\Api\JsonApiTestCase;
final class PaymentRequestsTest extends JsonApiTestCase
{
protected function setUp(): void
{
$this->setUpAdminContext();
parent::setUp();
}
/** @test */
public function it_gets_payment_requests(): void
{
$this->setUpDefaultGetHeaders();
$this->loadFixturesFromFiles([
'authentication/api_administrator.yaml',
'channel.yaml',
'payment_method.yaml',
'payment_request/payment_request.yaml',
'payment_request/order.yaml',
]);
$this->requestGet(uri: '/api/v2/admin/payment-requests');
$this->assertResponseSuccessful('admin/payment_request/get_payment_requests');
}
/** @test */
public function it_gets_a_payment_request(): void
{
$this->setUpDefaultGetHeaders();
$fixtures = $this->loadFixturesFromFiles([
'authentication/api_administrator.yaml',
'channel.yaml',
'payment_method.yaml',
'payment_request/payment_request.yaml',
'payment_request/order.yaml',
]);
/** @var PaymentRequestInterface $paymentRequest */
$paymentRequest = $fixtures['payment_request_authorize'];
$this->requestGet(uri: sprintf('/api/v2/admin/payment-requests/%s', $paymentRequest->getHash()));
$this->assertResponseSuccessful('admin/payment_request/get_payment_request');
}
}

View file

@ -0,0 +1,17 @@
Sylius\Component\Core\Model\Payment:
payment:
method: "@payment_method_cash_on_delivery"
order: "@order"
state: "processing"
amount: 1000
currencyCode: "USD"
Sylius\Component\Core\Model\Order:
order:
channel: "@channel_web"
currencyCode: "USD"
localeCode: "en_US"
state: "new"
paymentState: "awaiting_payment"
shippingState: "ready"
tokenValue: "token"

View file

@ -0,0 +1,33 @@
Sylius\Component\Payment\Model\PaymentRequest:
payment_request_status:
__construct: [ '@payment', '@payment_method_cash_on_delivery' ]
state: "completed"
action: "status"
payload: null
responseData: []
payment_request_authorize:
__construct: [ '@payment', '@payment_method_cash_on_delivery' ]
state: "completed"
action: "authorize"
payload: {
"target_path": "https://myshop.tld/target-path",
"after_path": "https://myshop.tld/after-path",
}
responseData: {
"after_url": "https://myshop.tld/after-path",
}
payment_request_capture:
__construct: [ '@payment', '@payment_method_cash_on_delivery' ]
state: "processing"
action: "capture"
payload: {
"http_request": {
"query": {
"token": "EC-2d9EV13959UR209410U",
"PayerID": "UX8WBNYWGBVMG"
}
}
}
responseData: {
"after_url": "https://myshop.tld/after-path",
}

View file

@ -0,0 +1,27 @@
{
"@context": "\/api\/v2\/contexts\/PaymentRequest",
"@id": "\/api\/v2\/admin\/payment-requests\/@string@",
"@type": "PaymentRequest",
"hash": "@string@",
"state": "completed",
"action": "authorize",
"payload": {
"target_path": "https:\/\/myshop.tld\/target-path",
"after_path": "https:\/\/myshop.tld\/after-path"
},
"responseData": {
"after_url": "https:\/\/myshop.tld\/after-path"
},
"payment": "\/api\/v2\/admin\/payments\/@integer@",
"method": {
"@id": "\/api\/v2\/admin\/payment-methods\/CASH_ON_DELIVERY",
"@type": "PaymentMethod",
"code": "CASH_ON_DELIVERY",
"enabled": true,
"translations": {
"en_US": "\/api\/v2\/admin\/payment-method-translations\/@integer@"
}
},
"createdAt": @datetime@,
"updatedAt": @datetime@
}

View file

@ -0,0 +1,66 @@
{
"@context": "\/api\/v2\/contexts\/PaymentRequest",
"@id": "\/api\/v2\/admin\/payment-requests",
"@type": "hydra:Collection",
"hydra:member": [
{
"@id": "\/api\/v2\/admin\/payment-requests\/@string@",
"@type": "PaymentRequest",
"hash": "@string@",
"state": "completed",
"action": "status",
"payment": "\/api\/v2\/admin\/payments\/@integer@",
"method": "\/api\/v2\/admin\/payment-methods\/CASH_ON_DELIVERY"
},
{
"@id": "\/api\/v2\/admin\/payment-requests\/@string@",
"@type": "PaymentRequest",
"hash": "@string@",
"state": "completed",
"action": "authorize",
"payment": "\/api\/v2\/admin\/payments\/@integer@",
"method": "\/api\/v2\/admin\/payment-methods\/CASH_ON_DELIVERY"
},
{
"@id": "\/api\/v2\/admin\/payment-requests\/@string@",
"@type": "PaymentRequest",
"hash": "@string@",
"state": "processing",
"action": "capture",
"payment": "\/api\/v2\/admin\/payments\/@integer@",
"method": "\/api\/v2\/admin\/payment-methods\/CASH_ON_DELIVERY"
}
],
"hydra:totalItems": 3,
"hydra:search": {
"@type": "hydra:IriTemplate",
"hydra:template": "\/api\/v2\/admin\/payment-requests{?state,state[],method.code,method.code[]}",
"hydra:variableRepresentation": "BasicRepresentation",
"hydra:mapping": [
{
"@type": "IriTemplateMapping",
"variable": "state",
"property": "state",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "state[]",
"property": "state",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "method.code",
"property": "method.code",
"required": false
},
{
"@type": "IriTemplateMapping",
"variable": "method.code[]",
"property": "method.code",
"required": false
}
]
}
}