Failed Conditions
Push — master ( 7c3864...930f9b )
by Florent
14:15
created

AuthorizationRequestTest   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 1
lcom 0
cbo 1
dl 0
loc 63
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B basicCalls() 0 57 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\Component\AuthorizationEndpoint\Tests\AuthorizationRequest;
15
16
use OAuth2Framework\Component\AuthorizationEndpoint\AuthorizationRequest\AuthorizationRequest;
17
use OAuth2Framework\Component\AuthorizationEndpoint\ResponseMode\ResponseMode;
18
use OAuth2Framework\Component\AuthorizationEndpoint\ResponseType\ResponseType;
19
use OAuth2Framework\Component\Core\Client\Client;
20
use OAuth2Framework\Component\Core\DataBag\DataBag;
21
use OAuth2Framework\Component\Core\ResourceServer\ResourceServer;
22
use OAuth2Framework\Component\Core\TokenType\TokenType;
23
use OAuth2Framework\Component\Core\User\User;
24
use OAuth2Framework\Component\Core\UserAccount\UserAccount;
25
use PHPUnit\Framework\TestCase;
26
27
/**
28
 * @group AuthorizationEndpoint
29
 * @group AuthorizationRequest
30
 */
31
final class AuthorizationRequestTest extends TestCase
32
{
33
    /**
34
     * @test
35
     */
36
    public function basicCalls()
37
    {
38
        $client = $this->prophesize(Client::class);
39
        $tokenType = $this->prophesize(TokenType::class);
40
        $responseType = $this->prophesize(ResponseType::class);
41
        $responseMode = $this->prophesize(ResponseMode::class);
42
        $user = $this->prophesize(User::class);
43
        $userAccount = $this->prophesize(UserAccount::class);
44
        $resourceServer = $this->prophesize(ResourceServer::class);
45
        $params = [
46
            'prompt' => 'consent login select_account',
47
            'ui_locales' => 'fr en',
48
            'scope' => 'scope1 scope2',
49
        ];
50
        $authorizationRequest = new AuthorizationRequest($client->reveal(), $params);
51
52
        $authorizationRequest->setTokenType($tokenType->reveal());
53
        $authorizationRequest->setResponseType($responseType->reveal());
54
        $authorizationRequest->setResponseMode($responseMode->reveal());
55
        $authorizationRequest->setRedirectUri('https://localhost');
56
        $authorizationRequest->setUser($user->reveal());
57
        $authorizationRequest->setUserAccount($userAccount->reveal());
58
        $authorizationRequest->setResponseParameter('foo', 'bar');
59
        $authorizationRequest->setResponseHeader('X-FOO', 'bar');
60
        $authorizationRequest->setResourceServer($resourceServer->reveal());
61
        $authorizationRequest->setConsentScreenOption('foo', 'bar');
62
63
        static::assertEquals($params, $authorizationRequest->getQueryParams());
64
        static::assertFalse($authorizationRequest->hasQueryParam('client_id'));
65
        static::assertTrue($authorizationRequest->hasQueryParam('prompt'));
66
        static::assertEquals('consent login select_account', $authorizationRequest->getQueryParam('prompt'));
67
        static::assertInstanceOf(Client::class, $authorizationRequest->getClient());
68
        static::assertInstanceOf(TokenType::class, $authorizationRequest->getTokenType());
69
        static::assertInstanceOf(ResponseType::class, $authorizationRequest->getResponseType());
70
        static::assertInstanceOf(ResponseMode::class, $authorizationRequest->getResponseMode());
71
        static::assertEquals('https://localhost', $authorizationRequest->getRedirectUri());
72
        static::assertInstanceOf(User::class, $authorizationRequest->getUser());
73
        static::assertInstanceOf(UserAccount::class, $authorizationRequest->getUserAccount());
74
        static::assertEquals(['foo' => 'bar'], $authorizationRequest->getResponseParameters());
75
        static::assertFalse($authorizationRequest->hasResponseParameter('bar'));
76
        static::assertTrue($authorizationRequest->hasResponseParameter('foo'));
77
        static::assertEquals('bar', $authorizationRequest->getResponseParameter('foo'));
78
        static::assertEquals(['X-FOO' => 'bar'], $authorizationRequest->getResponseHeaders());
79
        static::assertFalse($authorizationRequest->hasPrompt('none'));
80
        static::assertTrue($authorizationRequest->hasPrompt('login'));
81
        static::assertEquals(['consent', 'login', 'select_account'], $authorizationRequest->getPrompt());
82
        static::assertTrue($authorizationRequest->hasUiLocales());
83
        static::assertEquals(['fr', 'en'], $authorizationRequest->getUiLocales());
84
        $authorizationRequest->allow();
85
        static::assertTrue($authorizationRequest->isAuthorized());
86
        $authorizationRequest->deny();
87
        static::assertFalse($authorizationRequest->isAuthorized());
88
        static::assertInstanceOf(ResourceServer::class, $authorizationRequest->getResourceServer());
89
        static::assertTrue($authorizationRequest->hasScope());
90
        static::assertEquals('scope1 scope2', $authorizationRequest->getScope());
91
        static::assertInstanceOf(DataBag::class, $authorizationRequest->getMetadata());
92
    }
93
}
94