Failed Conditions
Push — master ( 3df084...2d5f15 )
by Florent
06:05
created

RefreshTokenFixtures::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
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\ServerBundle\Tests\TestBundle\DataFixtures;
15
16
use Doctrine\Common\DataFixtures\FixtureInterface;
17
use Doctrine\Common\Persistence\ObjectManager;
18
use OAuth2Framework\Component\Core\Client\ClientId;
19
use OAuth2Framework\Component\Core\DataBag\DataBag;
20
use OAuth2Framework\Component\Core\UserAccount\UserAccountId;
21
use OAuth2Framework\Component\RefreshTokenGrant\RefreshTokenId;
22
use OAuth2Framework\ServerBundle\Tests\TestBundle\Entity\RefreshToken;
23
use OAuth2Framework\ServerBundle\Tests\TestBundle\Entity\RefreshTokenRepository;
24
25
final class RefreshTokenFixtures implements FixtureInterface
26
{
27
    private $refreshTokenRepository;
28
29
    public function __construct(RefreshTokenRepository $refreshTokenRepository)
30
    {
31
        $this->refreshTokenRepository = $refreshTokenRepository;
32
    }
33
34
    public function load(ObjectManager $manager)
35
    {
36
        foreach ($this->getData() as $datum) {
37
            $refreshToken = new RefreshToken(
38
                new RefreshTokenId($datum['refresh_token_id']),
39
                new ClientId($datum['client_id']),
40
                $datum['resource_owner_id'],
41
                $datum['expires_at'],
42
                new DataBag($datum['parameter']),
43
                new DataBag($datum['metadata']),
44
                $datum['resource_server_id']
45
            );
46
            if ($datum['is_revoked']) {
47
                $refreshToken->markAsRevoked();
48
            }
49
            $this->refreshTokenRepository->save($refreshToken);
50
        }
51
    }
52
53
    private function getData(): array
54
    {
55
        return [
56
            [
57
                'refresh_token_id' => 'VALID_REFRESH_TOKEN',
58
                'client_id' => 'CLIENT_ID_3',
59
                'resource_owner_id' => new UserAccountId('john.1'),
60
                'expires_at' => new \DateTimeImmutable('now +1 day'),
61
                'parameter' => [],
62
                'metadata' => [],
63
                'resource_server_id' => null,
64
                'is_revoked' => false,
65
            ],
66
            [
67
                'refresh_token_id' => 'REVOKED_REFRESH_TOKEN',
68
                'client_id' => 'CLIENT_ID_3',
69
                'resource_owner_id' => new UserAccountId('john.1'),
70
                'expires_at' => new \DateTimeImmutable('now +1 day'),
71
                'parameter' => [],
72
                'metadata' => [],
73
                'resource_server_id' => null,
74
                'is_revoked' => true,
75
            ],
76
            [
77
                'refresh_token_id' => 'EXPIRED_REFRESH_TOKEN',
78
                'client_id' => 'CLIENT_ID_3',
79
                'resource_owner_id' => new UserAccountId('john.1'),
80
                'expires_at' => new \DateTimeImmutable('now -1 day'),
81
                'parameter' => [],
82
                'metadata' => [],
83
                'resource_server_id' => null,
84
                'is_revoked' => false,
85
            ],
86
        ];
87
    }
88
}
89