Добавлен параметр suspended_until (период охлаждения для «Покупок в кредит» от СберБанка). В запрос на создание выплаты у bank_id добавлена минимально допустимая длина 12 и проверка по регулярному выражению

Добавлен новый способ оплаты — Плати частями
Ошибки вынесены в отдельные объекты
Внесены небольшие изменения в тексты
This commit is contained in:
Антон Н. Николаев
2025-09-04 14:26:26 +03:00
parent d50509a23d
commit 07548dff5e
548 changed files with 13082 additions and 1503 deletions
@@ -2,6 +2,7 @@
namespace Tests\YooKassa\Common\Exceptions;
use YooKassa\Common\Errors\ErrorCode;
use YooKassa\Common\Exceptions\ResponseProcessingException;
/**
@@ -9,12 +10,12 @@ use YooKassa\Common\Exceptions\ResponseProcessingException;
*/
class ResponseProcessingExceptionTest extends ApiExceptionTest
{
public function getTestInstance($message = '', $code = 0, $responseHeaders = [], $responseBody = '')
public function getTestInstance($message = '', $code = 0, $responseHeaders = [], $responseBody = ''): ResponseProcessingException
{
return new ResponseProcessingException($responseHeaders, $responseBody);
}
public function expectedHttpCode()
public function expectedHttpCode(): int
{
return ResponseProcessingException::HTTP_CODE;
}
@@ -27,13 +28,13 @@ class ResponseProcessingExceptionTest extends ApiExceptionTest
$instance = $this->getTestInstance('', 0, [], $body);
$tmp = json_decode($body, true);
if (empty($tmp['description'])) {
self::assertEquals('', $instance->getMessage());
self::assertEquals('Error code: unknown.', $instance->getMessage());
} else {
self::assertEquals($tmp['description'] . '.', $instance->getMessage());
self::assertEquals($tmp['description'] . '. Error code: unknown.', $instance->getMessage());
}
}
public static function descriptionDataProvider()
public static function descriptionDataProvider(): array
{
return [
['{}'],
@@ -56,7 +57,7 @@ class ResponseProcessingExceptionTest extends ApiExceptionTest
}
}
public static function retryAfterDataProvider()
public static function retryAfterDataProvider(): array
{
return [
['{}'],
@@ -79,7 +80,7 @@ class ResponseProcessingExceptionTest extends ApiExceptionTest
}
}
public static function typeDataProvider()
public static function typeDataProvider(): array
{
return [
['{}'],
@@ -99,31 +100,44 @@ class ResponseProcessingExceptionTest extends ApiExceptionTest
$tmp = json_decode($body, true);
$message = '';
if (!empty($tmp['description'])) {
$message = $tmp['description'] . '.';
$message = $tmp['description'] . '. ';
}
self::assertEquals($message, $instance->getMessage());
if (empty($tmp['code']) || !in_array($tmp['code'], ErrorCode::getValidValues(), true)) {
$message .= 'Error code: unknown. ';
} else {
$message .= 'Error code: ' . $tmp['code'] . '. ';
}
if (!empty($tmp['parameter'])) {
$message .= 'Parameter name: ' . $tmp['parameter'] . '. ';
}
self::assertEquals(trim($message), trim($instance->getMessage()));
if (empty($tmp['retry_after'])) {
self::assertNull($instance->retryAfter);
self::assertNull($instance->getError()->getRetryAfter());
} else {
self::assertEquals($tmp['retry_after'], $instance->retryAfter);
self::assertEquals($tmp['retry_after'], $instance->getError()->getRetryAfter());
}
if (empty($tmp['type'])) {
self::assertNull($instance->type);
self::assertNull($instance->getError()->getType());
} else {
self::assertEquals($tmp['type'], $instance->type);
self::assertEquals($tmp['type'], $instance->getError()->getType());
}
}
public static function messageDataProvider()
public static function messageDataProvider(): array
{
return [
['{}'],
['{"code":"server_error","description":"Internal server error"}'],
['{"code":"server_error","description":"Invalid parameter value","parameter":"shop_id"}'],
['{"code":"server_error","description":"Invalid parameter value","parameter":"shop_id","type":"test"}'],
['{"code":"server_error","description":"Invalid parameter value","parameter":"shop_id","retry_after":333}'],
['{"code":"internal_server_error","description":"Internal server error"}'],
['{"code":"internal_server_error","description":"Invalid parameter value","parameter":"shop_id"}'],
['{"code":"internal_server_error","description":"Invalid parameter value","parameter":"shop_id","type":"test"}'],
['{"code":"internal_server_error","description":"Invalid parameter value","parameter":"shop_id","retry_after":333}'],
];
}