Passed
Push — master ( b5e885...54d7bc )
by Charles
02:34
created

AuthorizationTests   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 6
eloc 16
dl 0
loc 34
rs 10
c 0
b 0
f 0
1
<?php declare(strict_types=1);
2
3
namespace ncryptf\Tests;
4
5
use DateTime;
6
use ncryptf\Tests\AbstractTest;
7
use ncryptf\Authorization;
8
9
final class AuthorizationTests extends AbstractTest
10
{
11
    public function testV1HMAC()
12
    {
13
        foreach ($this->testCases as $k => $params) {
14
            $auth = new Authorization($params[0], $params[1], $this->token, $this->date, $params[2], 1, $this->salt);
15
16
            $this->assertEquals($auth->getHeader(), $this->v1HMACHeaders[$k]);
17
            $hmac = \explode(',', $this->v1HMACHeaders[$k])[1];
18
            $this->assertEquals($auth->verify($hmac, $auth, 90), false);
19
        }
20
    }
21
22
    public function testV2HMAC()
23
    {
24
        foreach ($this->testCases as $k => $params) {
25
            $auth = new Authorization($params[0], $params[1], $this->token, $this->date, $params[2], 2, $this->salt);
26
27
            $this->assertEquals($auth->getHeader(), $this->v2HMACHeaders[$k]);
28
            $hmac = \json_decode(\base64_decode(\str_replace('HMAC ', '', $this->v2HMACHeaders[$k])), true)['hmac'];
29
            $this->assertEquals($auth->verify($hmac, $auth, 90), false);
30
        }
31
    }
32
33
    public function testVerify()
34
    {
35
        foreach ($this->testCases as $k => $params) {
36
            $auth = new Authorization($params[0], $params[1], $this->token, new DateTime, $params[2], 1, $this->salt);
37
38
            $this->assertEquals($auth->verify($auth->getHMAC(), $auth, 90), true);
39
40
            $auth2 = new Authorization($params[0], $params[1], $this->token, new DateTime, $params[2], 2, $this->salt);
41
42
            $this->assertEquals($auth2->verify($auth2->getHMAC(), $auth2, 90), true);
43
        }
44
    }
45
}
46