Failed Conditions
Push — ng ( 14a26e...d8e250 )
by Florent
03:43
created

RefreshTokenRepository::cacheObject()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 8
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 6
nc 1
nop 1
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * The MIT License (MIT)
7
 *
8
 * Copyright (c) 2014-2018 Spomky-Labs
9
 *
10
 * This software may be modified and distributed under the terms
11
 * of the MIT license.  See the LICENSE file for details.
12
 */
13
14
namespace OAuth2Framework\Bundle\Tests\TestBundle\Entity;
15
16
use OAuth2Framework\Component\Core\Client\ClientId;
17
use OAuth2Framework\Component\Core\DataBag\DataBag;
18
use OAuth2Framework\Component\Core\UserAccount\UserAccountId;
19
use OAuth2Framework\Component\RefreshTokenGrant\RefreshToken;
20
use OAuth2Framework\Component\RefreshTokenGrant\RefreshTokenId;
21
use OAuth2Framework\Component\RefreshTokenGrant\RefreshTokenRepository as RefreshTokenRepositoryInterface;
22
23
class RefreshTokenRepository implements RefreshTokenRepositoryInterface
24
{
25
    /**
26
     * @var RefreshToken[]
27
     */
28
    private $refreshTokens = [];
29
30
    /**
31
     * RefreshTokenRepository constructor.
32
     */
33
    public function __construct()
34
    {
35
        $this->initRefreshTokens();
36
    }
37
38
    /**
39
     * {@inheritdoc}
40
     */
41
    public function find(RefreshTokenId $refreshTokenId)
42
    {
43
        return array_key_exists($refreshTokenId->getValue(), $this->refreshTokens) ? $this->refreshTokens[$refreshTokenId->getValue()] : null;
44
    }
45
46
    /**
47
     * {@inheritdoc}
48
     */
49
    public function save(RefreshToken $refreshToken)
50
    {
51
        $this->refreshTokens[$refreshToken->getTokenId()->getValue()] = $refreshToken;
52
    }
53
54
    private function initRefreshTokens()
55
    {
56
        $refreshToken = RefreshToken::createEmpty();
57
        $refreshToken = $refreshToken->create(
58
            RefreshTokenId::create('VALID_REFRESH_TOKEN'),
59
            UserAccountId::create('john.1'),
60
            ClientId::create('CLIENT_ID_3'),
61
            DataBag::create([]),
62
            DataBag::create([]),
63
            new \DateTimeImmutable('now +1 day'),
64
            null
65
        );
66
        $refreshToken->eraseMessages();
67
        $this->save($refreshToken);
68
69
        $refreshToken = RefreshToken::createEmpty();
70
        $refreshToken = $refreshToken->create(
71
            RefreshTokenId::create('REVOKED_REFRESH_TOKEN'),
72
            UserAccountId::create('john.1'),
73
            ClientId::create('CLIENT_ID_3'),
74
            DataBag::create([]),
75
            DataBag::create([]),
76
            new \DateTimeImmutable('now +1 day'),
77
            null
78
        );
79
        $refreshToken = $refreshToken->markAsRevoked();
80
        $refreshToken->eraseMessages();
81
        $this->save($refreshToken);
82
83
        $refreshToken = RefreshToken::createEmpty();
84
        $refreshToken = $refreshToken->create(
85
            RefreshTokenId::create('EXPIRED_REFRESH_TOKEN'),
86
            UserAccountId::create('john.1'),
87
            ClientId::create('CLIENT_ID_3'),
88
            DataBag::create([]),
89
            DataBag::create([]),
90
            new \DateTimeImmutable('now -1 day'),
91
            null
92
        );
93
        $refreshToken->eraseMessages();
94
        $this->save($refreshToken);
95
    }
96
}
97