SpecHelper   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 44
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
dl 0
loc 44
rs 10
c 0
b 0
f 0
wmc 5
lcom 0
cbo 5

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getDummyData() 0 14 3
A expectNoRequests() 0 8 1
A makeExceptionResponse() 0 17 1
1
<?php
2
3
namespace spec\Scriptotek\Alma;
4
5
use Danmichaelo\QuiteSimpleXMLElement\QuiteSimpleXMLElement;
6
use Http\Client\Common\Exception\ClientErrorException;
7
use Http\Factory\Guzzle\RequestFactory;
8
use Http\Factory\Guzzle\ResponseFactory;
9
use Prophecy\Argument;
10
use function GuzzleHttp\Psr7\stream_for;
11
12
class SpecHelper
13
{
14
    public static function getDummyData($filename, $parse = true)
15
    {
16
        $data = file_get_contents(__DIR__ . '/data/' . $filename);
17
18
        if (!$parse) {
19
            return $data;
20
        }
21
22
        if (strpos($filename, '.xml')) {
23
            return QuiteSimpleXMLElement::make($data);
24
        }
25
26
        return json_decode($data);
27
    }
28
29
    public static function expectNoRequests($client)
30
    {
31
        $client->getJSON(Argument::any(), Argument::any())
32
            ->shouldNotBeCalled();
33
34
        $client->getXML(Argument::any(), Argument::any())
35
            ->shouldNotBeCalled();
36
    }
37
38
    public static function makeExceptionResponse(
39
        $body,
40
        $code = 400,
41
        $contentType = 'application/json;charset=utf-8',
42
        $cls = ClientErrorException::class
43
    ) {
44
        $requestFactory = new RequestFactory();
45
        $responseFactory = new ResponseFactory();
46
47
        return new $cls(
48
            'Error 400',
49
            $requestFactory->createRequest('GET', ''),
50
            $responseFactory->createResponse($code, 'Bad Request')
51
                ->withHeader('Content-Type', $contentType)
52
                ->withBody(stream_for($body))
53
        );
54
    }
55
}
56