<?php declare(strict_types=1); /* * Copyright (C) 2013 Mailgun * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file for details. */ namespace Mailgun\Tests\Exception; use GuzzleHttp\Psr7\Response; use Mailgun\Exception\HttpClientException; use Mailgun\Tests\MailgunTestCase; class HttpClientExceptionTest extends MailgunTestCase { public function testBadRequestGetMessageJson() { $response = new Response(400, ['Content-Type' => 'application/json'], '{"message":"Server Message"}'); $exception = HttpClientException::badRequest($response); $this->assertStringEndsWith('Server Message', $exception->getMessage()); $response = new Response(400, ['Content-Type' => 'application/json'], '{"Foo":"Server Message"}'); $exception = HttpClientException::badRequest($response); $this->assertStringEndsWith('{"Foo":"Server Message"}', $exception->getMessage()); } public function testBadRequestGetMessage() { $response = new Response(400, ['Content-Type' => 'text/html'], '<html><body>Server HTML</body></html>'); $exception = HttpClientException::badRequest($response); $this->assertStringEndsWith('<html><body>Server HTML</body></html>', $exception->getMessage()); } public function testForbiddenRequestThrowException() { $response = new Response(403, ['Content-Type' => 'application/json'], '{"Error":"Business Verification"}'); $exception = HttpClientException::forbidden($response); $this->assertInstanceOf(HttpClientException::class, $exception); $this->assertSame(403, $exception->getCode()); } public function testForbiddenRequestGetMessageJson() { $response = new Response(403, ['Content-Type' => 'application/json'], '{"Error":"Business Verification"}'); $exception = HttpClientException::forbidden($response); $this->assertStringEndsWith('Business Verification', $exception->getMessage()); $response = new Response(403, ['Content-Type' => 'application/json'], '{"Message":"Business Verification"}'); $exception = HttpClientException::forbidden($response); $this->assertStringEndsWith('{"Message":"Business Verification"}', $exception->getMessage()); } public function testForbiddenRequestGetMessage() { $response = new Response(403, ['Content-Type' => 'text/html'], '<html><body>Forbidden</body></html>'); $exception = HttpClientException::forbidden($response); $this->assertStringEndsWith('<html><body>Forbidden</body></html>', $exception->getMessage()); } }