SplashRequestContextTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 40
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

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

2 Methods

Rating   Name   Duplication   Size   Complexity  
B testRequest() 0 25 1
A testUrlParameters() 0 11 1
1
<?php
2
3
namespace Mouf\Mvc\Splash\Services;
4
5
use Mouf\Mvc\Splash\Exception\SplashMissingParameterException;
6
use Zend\Diactoros\ServerRequest;
7
use Zend\Diactoros\UploadedFile;
8
9
class SplashRequestContextTest extends \PHPUnit_Framework_TestCase
10
{
11
    public function testRequest()
12
    {
13
        $file = new UploadedFile('foo', 12, UPLOAD_ERR_OK);
14
        $request = new ServerRequest();
15
        $request = $request->withQueryParams(['id' => 42])
16
                ->withParsedBody(['post' => 'foo'])
17
                ->withUploadedFiles(['file' => $file]);
18
        $context = new SplashRequestContext($request);
19
        $context->addUrlParameter('url', 'bar');
20
21
        $this->assertTrue($context->hasParameter('id'));
22
        $this->assertTrue($context->hasParameter('post'));
23
        $this->assertTrue($context->hasParameter('file'));
24
        $this->assertTrue($context->hasParameter('url'));
25
        $this->assertFalse($context->hasParameter('no_exist'));
26
27
        $this->assertEquals(42, $context->getParameter('id', true));
28
        $this->assertEquals('foo', $context->getParameter('post', true));
29
        $this->assertEquals($file, $context->getParameter('file', true));
30
        $this->assertEquals('bar', $context->getParameter('url', true));
31
        $this->assertEquals('default', $context->getParameter('no_exist', false, 'default'));
32
33
        $this->expectException(SplashMissingParameterException::class);
34
        $this->assertEquals('bar', $context->getParameter('no_exist', true));
35
    }
36
37
    public function testUrlParameters()
38
    {
39
        $request = new ServerRequest();
40
        $context = new SplashRequestContext($request);
41
        $context->addUrlParameter('id', 24);
42
        $this->assertEquals(24, $context->getUrlParameters()['id']);
43
        $context->setUrlParameters([
44
            'id' => 42,
45
        ]);
46
        $this->assertEquals(42, $context->getUrlParameters()['id']);
47
    }
48
}
49