Failed Conditions
Push — ng ( 625bbc...a06888 )
by Florent
08:03
created

CommonParametersRuleTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 57
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 4
dl 0
loc 57
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A aParameterIsNotAValidUrl() 0 10 1
B testCommonParameterRule() 0 25 1
A getCallable() 0 6 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\ClientRule\Tests;
15
16
use OAuth2Framework\Component\Core\Client\ClientId;
17
use OAuth2Framework\Component\ClientRule;
18
use OAuth2Framework\Component\Core\DataBag\DataBag;
19
use PHPUnit\Framework\TestCase;
20
21
/**
22
 * @group Tests
23
 */
24
class CommonParametersRuleTest extends TestCase
25
{
26
    /**
27
     * @test
28
     * @expectedException \InvalidArgumentException
29
     * @expectedExceptionMessage The parameter with key "client_uri" is not a valid URL.
30
     */
31
    public function aParameterIsNotAValidUrl()
32
    {
33
        $clientId = ClientId::create('CLIENT_ID');
34
        $commandParameters = DataBag::create([
35
            'client_name' => 'ClientCredentials name',
36
            'client_uri' => 'urn:foo:bar:OK',
37
        ]);
38
        $rule = new ClientRule\CommonParametersRule();
39
        $rule->handle($clientId, $commandParameters, DataBag::create([]), $this->getCallable());
40
    }
41
42
    /**
43
     * @test
44
     */
45
    public function testCommonParameterRule()
46
    {
47
        $clientId = ClientId::create('CLIENT_ID');
48
        $commandParameters = DataBag::create([
49
            'client_name' => 'ClientCredentials name',
50
            'client_name#fr' => 'Nom du client',
51
            'client_uri' => 'http://localhost/information',
52
            'logo_uri' => 'http://127.0.0.1:8000/logo.png',
53
            'tos_uri' => 'http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/tos.html',
54
            'policy_uri' => 'http://localhost/policy',
55
        ]);
56
        $rule = new ClientRule\CommonParametersRule();
57
        $validatedParameters = $rule->handle($clientId, $commandParameters, DataBag::create([]), $this->getCallable());
58
59
        self::assertTrue($validatedParameters->has('client_name'));
60
        self::assertEquals('ClientCredentials name', $validatedParameters->get('client_name'));
61
        self::assertTrue($validatedParameters->has('client_uri'));
62
        self::assertEquals('http://localhost/information', $validatedParameters->get('client_uri'));
63
        self::assertTrue($validatedParameters->has('logo_uri'));
64
        self::assertEquals('http://127.0.0.1:8000/logo.png', $validatedParameters->get('logo_uri'));
65
        self::assertTrue($validatedParameters->has('tos_uri'));
66
        self::assertEquals('http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/tos.html', $validatedParameters->get('tos_uri'));
67
        self::assertTrue($validatedParameters->has('policy_uri'));
68
        self::assertEquals('http://localhost/policy', $validatedParameters->get('policy_uri'));
69
    }
70
71
    /**
72
     * @return callable
73
     */
74
    private function getCallable(): callable
75
    {
76
        return function (ClientId $clientId, DataBag $commandParameters, DataBag $validatedParameters): DataBag {
77
            return $validatedParameters;
78
        };
79
    }
80
}
81