MessageContextTest   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 6

Importance

Changes 0
Metric Value
dl 0
loc 38
c 0
b 0
f 0
wmc 4
lcom 0
cbo 6
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A message_as_concrete_type_provider() 0 16 1
A test_message_as_concrete_type() 0 15 3
1
<?php
2
3
namespace LightSaml\Tests\Context\Profile;
4
5
use LightSaml\Context\Profile\MessageContext;
6
use LightSaml\Model\Protocol\AuthnRequest;
7
use LightSaml\Model\Protocol\LogoutRequest;
8
use LightSaml\Model\Protocol\LogoutResponse;
9
use LightSaml\Model\Protocol\Response;
10
use LightSaml\Model\Protocol\SamlMessage;
11
use LightSaml\Tests\BaseTestCase;
12
13
class MessageContextTest extends BaseTestCase
14
{
15
    public function message_as_concrete_type_provider()
16
    {
17
        return [
18
            ['asAuthnRequest', true, new AuthnRequest()],
19
            ['asAuthnRequest', false, new Response()],
20
21
            ['asLogoutRequest', true, new LogoutRequest()],
22
            ['asLogoutRequest', false, new Response()],
23
24
            ['asResponse', true, new Response()],
25
            ['asResponse', false, new LogoutRequest()],
26
27
            ['asLogoutResponse', true, new LogoutResponse()],
28
            ['asLogoutResponse', false, new LogoutRequest()],
29
        ];
30
    }
31
32
    /**
33
     * @dataProvider message_as_concrete_type_provider
34
     */
35
    public function test_message_as_concrete_type($method, $hasValue, SamlMessage $message = null)
36
    {
37
        $context = new MessageContext();
38
        if ($message) {
39
            $context->setMessage($message);
40
        }
41
42
        $actualValue = $context->{$method}();
43
44
        if ($hasValue) {
45
            $this->assertSame($message, $actualValue);
46
        } else {
47
            $this->assertNull($actualValue);
48
        }
49
    }
50
}
51