Handler::__invoke()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 5
ccs 3
cts 3
cp 1
crap 1
rs 10
1
<?php
2
3
namespace Swis\Guzzle\Fixture;
4
5
use GuzzleHttp\Handler\MockHandler;
6
use GuzzleHttp\Promise\PromiseInterface;
7
use Psr\Http\Message\RequestInterface;
8
use Swis\Http\Fixture\ResponseBuilderInterface;
9
10
class Handler extends MockHandler
11
{
12
    /**
13
     * @var \Swis\Http\Fixture\ResponseBuilderInterface
14
     */
15
    protected ResponseBuilderInterface $responseBuilder;
16
17
    /**
18
     * @param \Swis\Http\Fixture\ResponseBuilderInterface $responseBuilder
19
     * @param array|null                                  $queue
20
     * @param callable|null                               $onFulfilled
21
     * @param callable|null                               $onRejected
22
     */
23 6
    public function __construct(
24
        ResponseBuilderInterface $responseBuilder,
25
        array $queue = null,
26
        callable $onFulfilled = null,
27
        callable $onRejected = null
28
    ) {
29 6
        $this->responseBuilder = $responseBuilder;
30 6
        parent::__construct($queue, $onFulfilled, $onRejected);
31 3
    }
32
33
    /**
34
     * @param \Psr\Http\Message\RequestInterface $request
35
     * @param array                              $options
36
     *
37
     * @throws \RuntimeException
38
     *
39
     * @return \GuzzleHttp\Promise\PromiseInterface
40
     */
41 6
    public function __invoke(RequestInterface $request, array $options): PromiseInterface
42
    {
43 6
        $this->append($this->responseBuilder->build($request));
44
45 6
        return parent::__invoke($request, $options);
46
    }
47
}
48