RequestSignatureMiddlewareTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 4
dl 0
loc 63
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 22 1
B itSignsARequest() 0 29 1
1
<?php
2
3
namespace Bunq\Tests\Middleware;
4
5
use Bunq\Certificate\DefaultCertificate;
6
use Bunq\Middleware\RequestSignatureMiddleware;
7
use GuzzleHttp\Psr7\Request;
8
use PHPUnit\Framework\TestCase;
9
10
final class RequestSignatureMiddlewareTest extends TestCase
11
{
12
    /**
13
     * @var RequestSignatureMiddleware
14
     */
15
    private $middleware;
16
17
    public function setUp()
18
    {
19
        $privKey = '-----BEGIN PRIVATE KEY-----
20
MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAMFTIP07VOb/jeax
21
cScI/Mnp9wv0Q03kTCCPcaPoOI0nXM8jMJyu4JuLcLX8OnITJhsrNj2ff3lwDsc6
22
KgejUbcGMJp6xPgALXdkztOPEWNYxCIyb9Pj8KctwUlu679pD6WoD60JMh88lL2o
23
A8VWJkLShBHaA0yqEWHfiPBGfnCfAgMBAAECgYAZzuwvgjUyZVlfO778VBHTLr3B
24
RcmaY2jaS+wC0qSCC4gzSuJZeGsZuMLCOLrgsbe7lsg1784HuzLt29DylhX5WpN3
25
7oJ7j6/GxElrgx4945N7syqMgrSfu+B8MiemFJqWrMNv5WXSIG/bA+O/nS1bGhLb
26
MkmCtGYca2XL674v0QJBAOdppnzV11n2pG8D7J2dwPRCOFhHQnfU6vkamY+RUETN
27
+jEIRO3GLp59S52Lb/W1FWdr+CIurynJnSvHary+1ncCQQDV3X+BrpOq09KT8Kdu
28
oqBhA7vz5oHgph/aK9lu0mytJZJR5OOmVFcygFTCNBzRgWiog1yLeu6dIvbH/3Tu
29
fTkZAkA0y73YLVF8jPDnAxYwv5UOJS2FtnxLqqARRShTwOt3RycVmLVhKh3out1N
30
jEp23GGNvuxVoCEGf6EEI/MOLNvxAkBMnybnl1xgf7OaPUY/ZRSArY3RPGybx+jx
31
iXRFOC6neiaKIK9PEDiNZ1z2lyUcCnkspqOpdUm4EqbH0MZcC5FBAkEA5Y1FKMSq
32
VfRE5LPsqFeT4lPFUX8EP20ucM86v1KtG4ywZxLOLOZ80e0V9SxZN17VDBwh5tVd
33
BxZd7SRnxYD9TQ==
34
-----END PRIVATE KEY-----';
35
36
        $certificate      = DefaultCertificate::fromString($privKey);
37
        $this->middleware = new RequestSignatureMiddleware($certificate);
38
    }
39
40
    /**
41
     * @test
42
     */
43
    public function itSignsARequest()
44
    {
45
        $headers         = [
46
            'X-Bunq-Client-Request-Id'     => '253e0f90-8842-4731-91dd-0191816e6a28',
47
            'X-Bunq-Client-Authentication' => 'session-token',
48
            'Cache-Control'                => 'no-cache',
49
            'X-Bunq-Geolocation'           => '52.3 4.89 12 100 NL',
50
            'X-Bunq-Language'              => 'nl_NL',
51
            'X-Bunq-Region'                => 'nl_NL',
52
            'other-existing-header'        => 'value',
53
        ];
54
        $request = new Request('GET', 'uri', $headers);
55
56
        $result = $this->middleware->__invoke($request);
57
58
        $expectedHeaders         = [
59
            'X-Bunq-Client-Request-Id'     => '253e0f90-8842-4731-91dd-0191816e6a28',
60
            'X-Bunq-Client-Authentication' => 'session-token',
61
            'Cache-Control'                => 'no-cache',
62
            'X-Bunq-Geolocation'           => '52.3 4.89 12 100 NL',
63
            'X-Bunq-Language'              => 'nl_NL',
64
            'X-Bunq-Region'                => 'nl_NL',
65
            'other-existing-header'        => 'value',
66
            'X-Bunq-Client-Signature'      => 'UdNaWrEGs9KqY33r3YSf4KpayASnT6WIgIRt98TWmhZ4qcG+a1N641K39ao9lZkNRuBYC2wH4FHthCWeE7qZlUMDazLh2fgC3+YkqMz5wZe26dRbQUWOK+8uR3OodaGAVfGxt4elwPy50nMjMvCgbH0DQuo8lMCrHwkhamBznJw='
67
        ];
68
        $expectedRequest = new Request('GET', 'uri', $expectedHeaders, $request->getBody());
69
70
        $this->assertEquals($expectedRequest, $result);
71
    }
72
}
73
74