Files
alfa-bank-sdk/tests/Feature/Webhooks/WebhookManagementTest.php

51 lines
1.7 KiB
PHP

<?php
use Apoloz\AlfaBank\Core\AlfaBankConnector;
use Apoloz\AlfaBank\Requests\Webhooks\CreateWebhookRequest;
use Apoloz\AlfaBank\Requests\Webhooks\GetWebhooksRequest;
use Apoloz\AlfaBank\Requests\Webhooks\DeleteWebhookRequest;
use Apoloz\AlfaBank\Data\Webhooks\Subscriptions\WebhookSubscriptionRequestData;
use Saloon\Http\Faking\MockResponse;
test('can list webhooks', function () {
$mockClient = new \Saloon\Http\Faking\MockClient([
GetWebhooksRequest::class => MockResponse::make([['id' => 'WH-1']], 200),
]);
$config = createTestConfig();
$connector = new AlfaBankConnector($config);
$connector->withMockClient($mockClient);
$response = $connector->send(new GetWebhooksRequest());
expect($response->status())->toBe(200)
->and($response->json('0.id'))->toBe('WH-1');
});
test('can create webhook', function () {
$mockClient = new \Saloon\Http\Faking\MockClient([
CreateWebhookRequest::class => MockResponse::make(['id' => 'WH-2'], 201),
]);
$config = createTestConfig();
$connector = new AlfaBankConnector($config);
$connector->withMockClient($mockClient);
$response = $connector->send(new CreateWebhookRequest(new WebhookSubscriptionRequestData('https://test.io', ['transactions'])));
expect($response->status())->toBe(201);
});
test('can delete webhook', function () {
$mockClient = new \Saloon\Http\Faking\MockClient([
DeleteWebhookRequest::class => MockResponse::make([], 204),
]);
$config = createTestConfig();
$connector = new AlfaBankConnector($config);
$connector->withMockClient($mockClient);
$response = $connector->send(new DeleteWebhookRequest('WH-1'));
expect($response->status())->toBe(204);
});