it_gets_last_token_from_user()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 7
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
namespace spec\Gesdinet\JWTRefreshTokenBundle\Doctrine;
4
5
use Doctrine\Common\Persistence\Mapping\ClassMetadata;
6
use Doctrine\Common\Persistence\ObjectManager;
7
use Gesdinet\JWTRefreshTokenBundle\Entity\RefreshToken;
8
use Gesdinet\JWTRefreshTokenBundle\Entity\RefreshTokenRepository;
9
use PhpSpec\ObjectBehavior;
10
11
class RefreshTokenManagerSpec extends ObjectBehavior
12
{
13
    const refresh_token_entity_class = 'Gesdinet\JWTRefreshTokenBundle\Entity\RefreshToken';
14
15
    public function let(ObjectManager $om, ClassMetadata $class, RefreshToken $entity, RefreshTokenRepository $repository)
16
    {
17
        $entity->setUsername('test');
18
        $entity->setRefreshToken('test_token');
19
20
        $om->getRepository(static::refresh_token_entity_class)->willReturn($repository);
21
        $om->getClassMetadata(static::refresh_token_entity_class)->willReturn($class);
22
        $class->getName()->willReturn(static::refresh_token_entity_class);
23
24
        $this->beConstructedWith($om, static::refresh_token_entity_class);
25
    }
26
27
    public function it_is_initializable()
28
    {
29
        $this->shouldHaveType('Gesdinet\JWTRefreshTokenBundle\Doctrine\RefreshTokenManager');
30
    }
31
32
    public function it_gets_token($repository, $refreshToken)
33
    {
34
        $repository->findOneBy(array('refreshToken' => $refreshToken))->shouldBeCalled();
35
36
        $this->get($refreshToken);
37
    }
38
39
    public function it_gets_last_token_from_user($repository, $entity)
40
    {
41
        $username = 'test';
42
        $repository->findOneBy(array('username' => $username), array('valid' => 'DESC'))->shouldBeCalled()->willReturn($entity);
43
44
        $this->getLastFromUsername($username)->shouldBe($entity);
45
    }
46
47
    public function it_saves_refresh_token_and_flush($entity, $om)
48
    {
49
        $om->persist($entity)->shouldBeCalled();
50
        $om->flush()->shouldBeCalled();
51
52
        $this->save($entity, true);
53
    }
54
55
    public function it_deletes_refresh_token_and_flush($entity, $om)
56
    {
57
        $om->remove($entity)->shouldBeCalled();
58
        $om->flush()->shouldBeCalled();
59
60
        $this->delete($entity, true);
61
    }
62
63
    public function it_revokes_all_invalid_and_flush($om, $repository, $entity)
64
    {
65
        $repository->findInvalid(null)->shouldBeCalled()->willReturn(array($entity));
66
        $om->remove($entity)->shouldBeCalled();
67
        $om->flush()->shouldBeCalled();
68
69
        $this->revokeAllInvalid(null, true);
70
    }
71
72
    public function it_has_class()
73
    {
74
        $this->getClass()->shouldBe(static::refresh_token_entity_class);
75
    }
76
}
77