forked from apoloz/alfa-bank-sdk
52 lines
1.7 KiB
PHP
52 lines
1.7 KiB
PHP
<?php
|
|
|
|
use Apoloz\AlfaBank\Core\AlfaBankConnector;
|
|
use Apoloz\AlfaBank\Data\Webhooks\Subscriptions\WebhookSubscriptionRequestData;
|
|
use Apoloz\AlfaBank\Requests\Webhooks\CreateWebhookRequest;
|
|
use Apoloz\AlfaBank\Requests\Webhooks\DeleteWebhookRequest;
|
|
use Apoloz\AlfaBank\Requests\Webhooks\GetWebhooksRequest;
|
|
use Saloon\Http\Faking\MockResponse;
|
|
|
|
test('can list webhooks', function (): void {
|
|
$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 (): void {
|
|
$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 (): void {
|
|
$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);
|
|
});
|