SamlSpTokenTest   A
last analyzed

Complexity

Total Complexity 10

Size/Duplication

Total Lines 137
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 10
c 1
b 0
f 0
lcom 1
cbo 6
dl 0
loc 137
rs 10

10 Methods

Rating   Name   Duplication   Size   Complexity  
A shouldBeSubclassOfAbstractToken() 0 5 1
A couldBeConstructedWithProviderKey() 0 4 1
A shouldReturnGetProviderKeyAsSetInConstructor() 0 6 1
A shouldReturnSetSamlSpInfo() 0 8 1
A shouldUnserializeProviderKey() 0 10 1
A shouldUnserializeSamlSpInfo() 0 11 1
A shouldCopyNameIDToAttributes() 0 10 1
A shouldCopyNameIDFormatToAttributes() 0 10 1
A shouldCopySessionIndexToAttributes() 0 10 1
A shouldCopySamlAttributesToAttributes() 0 13 1
1
<?php
2
3
namespace AerialShip\SamlSPBundle\Tests\Security\Core\Authentication\Token;
4
5
use AerialShip\SamlSPBundle\Security\Core\Authentication\Token\SamlSpToken;
6
use AerialShip\SamlSPBundle\Tests\Bridge\SamlSpInfoHelper;
7
8
class SamlSpTokenTest extends \PHPUnit_Framework_TestCase
9
{
10
    /**
11
     * @test
12
     */
13
    public function shouldBeSubclassOfAbstractToken()
14
    {
15
        $rc = new \ReflectionClass('AerialShip\SamlSPBundle\Security\Core\Authentication\Token\SamlSpToken');
16
        $this->assertTrue($rc->isSubclassOf('Symfony\Component\Security\Core\Authentication\Token\AbstractToken'));
17
    }
18
19
20
    /**
21
     * @test
22
     */
23
    public function couldBeConstructedWithProviderKey()
24
    {
25
        new SamlSpToken('key');
26
    }
27
28
29
    /**
30
     * @test
31
     */
32
    public function shouldReturnGetProviderKeyAsSetInConstructor()
33
    {
34
        $expectedProviderKey = 'some_provider_key';
35
        $token = new SamlSpToken($expectedProviderKey);
36
        $this->assertEquals($expectedProviderKey, $token->getProviderKey());
37
    }
38
39
40
    /**
41
     * @test
42
     */
43
    public function shouldReturnSetSamlSpInfo()
44
    {
45
        $samlSpInfoHelper = new SamlSpInfoHelper();
46
        $token = new SamlSpToken('key');
47
        $expectedSamlSpInfo = $samlSpInfoHelper->getSamlSpInfo();
48
        $token->setSamlSpInfo($expectedSamlSpInfo);
49
        $this->assertEquals($expectedSamlSpInfo, $token->getSamlSpInfo());
50
    }
51
52
53
    /**
54
     * @test
55
     */
56
    public function shouldUnserializeProviderKey()
57
    {
58
        $expectedProviderKey = 'some_provider_key';
59
        $token = new SamlSpToken($expectedProviderKey);
60
61
        $token = unserialize(serialize($token));
62
63
        $this->assertEquals($expectedProviderKey, $token->getProviderKey());
64
65
    }
66
67
68
    /**
69
     * @test
70
     */
71
    public function shouldUnserializeSamlSpInfo()
72
    {
73
        $samlSpInfoHelper = new SamlSpInfoHelper();
74
        $token = new SamlSpToken('key');
75
        $expectedSamlSpInfo = $samlSpInfoHelper->getSamlSpInfo();
76
        $token->setSamlSpInfo($expectedSamlSpInfo);
77
78
        $token = unserialize(serialize($token));
79
80
        $this->assertEquals($expectedSamlSpInfo, $token->getSamlSpInfo());
81
    }
82
83
84
    /**
85
     * @test
86
     */
87
    public function shouldCopyNameIDToAttributes()
88
    {
89
        $samlSpInfoHelper = new SamlSpInfoHelper();
90
        $token = new SamlSpToken('key');
91
        $expectedSamlSpInfo = $samlSpInfoHelper->getSamlSpInfo();
92
        $token->setSamlSpInfo($expectedSamlSpInfo);
93
94
        $this->assertTrue($token->hasAttribute(SamlSpToken::ATTRIBUTE_NAME_ID));
95
        $this->assertEquals($expectedSamlSpInfo->getNameID()->getValue(), $token->getAttribute(SamlSpToken::ATTRIBUTE_NAME_ID));
96
    }
97
98
99
    /**
100
     * @test
101
     */
102
    public function shouldCopyNameIDFormatToAttributes()
103
    {
104
        $samlSpInfoHelper = new SamlSpInfoHelper();
105
        $token = new SamlSpToken('key');
106
        $expectedSamlSpInfo = $samlSpInfoHelper->getSamlSpInfo();
107
        $token->setSamlSpInfo($expectedSamlSpInfo);
108
109
        $this->assertTrue($token->hasAttribute(SamlSpToken::ATTRIBUTE_NAME_ID_FORMAT));
110
        $this->assertEquals($expectedSamlSpInfo->getNameID()->getFormat(), $token->getAttribute(SamlSpToken::ATTRIBUTE_NAME_ID_FORMAT));
111
    }
112
113
    /**
114
     * @test
115
     */
116
    public function shouldCopySessionIndexToAttributes()
117
    {
118
        $samlSpInfoHelper = new SamlSpInfoHelper();
119
        $token = new SamlSpToken('key');
120
        $expectedSamlSpInfo = $samlSpInfoHelper->getSamlSpInfo();
121
        $token->setSamlSpInfo($expectedSamlSpInfo);
122
123
        $this->assertTrue($token->hasAttribute(SamlSpToken::ATTRIBUTE_SESSION_INDEX));
124
        $this->assertEquals($expectedSamlSpInfo->getAuthnStatement()->getSessionIndex(), $token->getAttribute(SamlSpToken::ATTRIBUTE_SESSION_INDEX));
125
    }
126
127
128
    /**
129
     * @test
130
     */
131
    public function shouldCopySamlAttributesToAttributes()
132
    {
133
        $samlSpInfoHelper = new SamlSpInfoHelper();
134
        $token = new SamlSpToken('key');
135
        $expectedSamlSpInfo = $samlSpInfoHelper->getSamlSpInfo();
136
        $token->setSamlSpInfo($expectedSamlSpInfo);
137
138
        $this->assertTrue($token->hasAttribute('a'));
139
        $this->assertEquals(1, $token->getAttribute('a'));
140
141
        $this->assertTrue($token->hasAttribute('b'));
142
        $this->assertEquals(array(2,3), $token->getAttribute('b'));
143
    }
144
} 
145