%PDF- %PDF-
| Direktori : /home/graphicd/www/vebto/vendor/meilisearch/meilisearch-php/tests/Exceptions/ |
| Current File : /home/graphicd/www/vebto/vendor/meilisearch/meilisearch-php/tests/Exceptions/ApiExceptionTest.php |
<?php
declare(strict_types=1);
namespace Tests\Exceptions;
use Http\Discovery\Psr17FactoryDiscovery;
use MeiliSearch\Exceptions\ApiException;
use Tests\TestCase;
final class ApiExceptionTest extends TestCase
{
public function testException(): void
{
$httpBodyExample = [
'message' => 'This is the message',
'errorCode' => 'this_is_the_error_code',
'errorType' => 'this_is_the_error_type',
'errorLink' => 'https://docs.meilisearch.com/errors',
];
$statusCode = 400;
try {
$streamFactory = Psr17FactoryDiscovery::findStreamFactory();
$responseBodyStream = $streamFactory->createStream(json_encode($httpBodyExample));
$responseFactory = Psr17FactoryDiscovery::findResponseFactory();
$response = $responseFactory->createResponse($statusCode)->withBody($responseBodyStream);
throw new ApiException($response, $httpBodyExample);
} catch (ApiException $apiException) {
$this->assertEquals($statusCode, $apiException->httpStatus);
$this->assertEquals($httpBodyExample['message'], $apiException->message);
$this->assertEquals($httpBodyExample['errorCode'], $apiException->errorCode);
$this->assertEquals($httpBodyExample['errorType'], $apiException->errorType);
$this->assertEquals($httpBodyExample['errorLink'], $apiException->errorLink);
$expectedExceptionToString = "MeiliSearch ApiException: Http Status: {$statusCode} - Message: {$httpBodyExample['message']} - Error code: {$httpBodyExample['errorCode']} - Error type: {$httpBodyExample['errorType']} - Error link: {$httpBodyExample['errorLink']}";
$this->assertEquals($expectedExceptionToString, (string) $apiException);
}
}
public function testExceptionWithNoHttpBody(): void
{
$statusCode = 400;
$responseFactory = Psr17FactoryDiscovery::findResponseFactory();
$response = $responseFactory->createResponse($statusCode);
try {
throw new ApiException($response, null);
} catch (ApiException $apiException) {
$this->assertEquals($statusCode, $apiException->httpStatus);
$this->assertEquals($response->getReasonPhrase(), $apiException->message);
$this->assertNull($apiException->errorCode);
$this->assertNull($apiException->errorType);
$this->assertNull($apiException->errorLink);
$expectedExceptionToString = "MeiliSearch ApiException: Http Status: {$statusCode} - Message: {$response->getReasonPhrase()}";
$this->assertEquals($expectedExceptionToString, (string) $apiException);
}
}
}