-
Notifications
You must be signed in to change notification settings - Fork 39
/
Copy pathHttpExceptionSpec.php
71 lines (55 loc) · 2.5 KB
/
HttpExceptionSpec.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace spec\Http\Client\Exception;
use Psr\Http\Message\RequestInterface;
use Psr\Http\Message\ResponseInterface;
use PhpSpec\ObjectBehavior;
class HttpExceptionSpec extends ObjectBehavior
{
function let(RequestInterface $request, ResponseInterface $response)
{
$response->getStatusCode()->willReturn(400);
$this->beConstructedWith('message', $request, $response);
}
function it_is_initializable()
{
$this->shouldHaveType('Http\Client\Exception\HttpException');
}
function it_is_request_exception()
{
$this->shouldHaveType('Http\Client\Exception\RequestException');
}
function it_has_a_response(ResponseInterface $response)
{
$this->getResponse()->shouldReturn($response);
}
function it_creates_a_client_exception(RequestInterface $request, ResponseInterface $response)
{
$request->getRequestTarget()->willReturn('/uri');
$request->getMethod()->willReturn('GET');
$response->getStatusCode()->willReturn(404);
$response->getReasonPhrase()->willReturn('Not Found');
$e = $this->create($request, $response);
$e->shouldHaveType('Http\Client\Exception\ClientException');
$e->getMessage()->shouldReturn('Client error [url] /uri [http method] GET [status code] 404 [reason phrase] Not Found');
}
function it_creates_a_server_exception(RequestInterface $request, ResponseInterface $response)
{
$request->getRequestTarget()->willReturn('/uri');
$request->getMethod()->willReturn('GET');
$response->getStatusCode()->willReturn(500);
$response->getReasonPhrase()->willReturn('Internal Server Error');
$e = $this->create($request, $response);
$e->shouldHaveType('Http\Client\Exception\ServerException');
$e->getMessage()->shouldReturn('Server error [url] /uri [http method] GET [status code] 500 [reason phrase] Internal Server Error');
}
function it_creates_an_http_exception(RequestInterface $request, ResponseInterface $response)
{
$request->getRequestTarget()->willReturn('/uri');
$request->getMethod()->willReturn('GET');
$response->getStatusCode()->willReturn(100);
$response->getReasonPhrase()->willReturn('Continue');
$e = $this->create($request, $response);
$e->shouldHaveType('Http\Client\Exception\HttpException');
$e->getMessage()->shouldReturn('Unsuccessful response [url] /uri [http method] GET [status code] 100 [reason phrase] Continue');
}
}