Passed
Pull Request — master (#81)
by
unknown
06:53
created

RefreshTokenAuthenticatorSpec::it_creates_token()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 15
rs 9.4285
cc 1
eloc 9
nc 1
nop 2
1
<?php
2
3
namespace spec\Gesdinet\JWTRefreshTokenBundle\Security\Authenticator;
4
5
use Gesdinet\JWTRefreshTokenBundle\Request\RequestRefreshToken;
6
use PhpSpec\ObjectBehavior;
7
use Symfony\Component\HttpFoundation\Request;
8
use Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken;
9
use Symfony\Component\Security\Core\Exception\AuthenticationException;
10
11
class RefreshTokenAuthenticatorSpec extends ObjectBehavior
12
{
13
    function let(RequestRefreshToken $requestRefreshToken)
14
    {
15
        $this->beConstructedWith($requestRefreshToken);
16
    }
17
18
    public function it_is_initializable()
19
    {
20
        $this->shouldHaveType('Gesdinet\JWTRefreshTokenBundle\Security\Authenticator\RefreshTokenAuthenticator');
21
    }
22
23
    public function it_supports_token(PreAuthenticatedToken $token, $providerKey)
24
    {
25
        $token->getProviderKey()->willReturn($providerKey);
26
        $this->supportsToken($token, $providerKey)->shouldBe(true);
27
    }
28
29
    function it_creates_token(RequestRefreshToken $requestRefreshToken, Request $request)
30
    {
31
        $providerKey = 'api';
32
33
        // Stubs
34
        $requestRefreshToken->getRefreshToken($request)
35
            ->willReturn('arefreshtokenstring');
36
37
        $this->createToken($request, $providerKey)
38
            ->shouldBeLike(new PreAuthenticatedToken(
39
                '',
40
                'arefreshtokenstring',
41
                $providerKey
42
            ));
43
    }
44
45
    public function it_fails_on_authentication(Request $request, AuthenticationException $exception)
46
    {
47
        $this->onAuthenticationFailure($request, $exception)->shouldHaveType('Symfony\Component\HttpFoundation\Response');
48
    }
49
}
50