RequestValueResolverTest::testSupportsNoRequest()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 8
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
/*
4
 *
5
 * (c) Yaroslav Honcharuk <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Yarhon\RouteGuardBundle\Tests\Controller\ArgumentResolver;
12
13
use PHPUnit\Framework\TestCase;
14
use Symfony\Component\HttpKernel\ControllerMetadata\ArgumentMetadata;
15
use Symfony\Component\HttpFoundation\Request;
16
use Yarhon\RouteGuardBundle\Controller\ArgumentResolver\RequestValueResolver;
17
use Yarhon\RouteGuardBundle\Controller\ArgumentResolver\ArgumentResolverContext;
18
19
/**
20
 * @author Yaroslav Honcharuk <[email protected]>
21
 */
22
class RequestValueResolverTest extends TestCase
23
{
24
    private $context;
25
26
    private $argument;
27
28
    public function setUp()
29
    {
30
        $this->context = $this->createMock(ArgumentResolverContext::class);
31
32
        $this->argument = $this->createMock(ArgumentMetadata::class);
33
    }
34
35
    public function testSupportsNoRequest()
36
    {
37
        $resolver = new RequestValueResolver();
38
39
        $this->argument->method('getType')
40
            ->willReturn('int');
41
42
        $this->assertFalse($resolver->supports($this->context, $this->argument));
43
    }
44
45
    public function testSupportsWithRequest()
46
    {
47
        $resolver = new RequestValueResolver();
48
49
        $this->argument->method('getType')
50
            ->willReturn(Request::class);
51
52
        $this->assertTrue($resolver->supports($this->context, $this->argument));
53
    }
54
55
    public function testSupportsWithRequestChild()
56
    {
57
        $resolver = new RequestValueResolver();
58
59
        $this->argument->method('getType')
60
            ->willReturn(RequestChild::class);
61
62
        $this->assertTrue($resolver->supports($this->context, $this->argument));
63
    }
64
65
    public function testResolve()
66
    {
67
        $resolver = new RequestValueResolver();
68
        $request = $this->createMock(Request::class);
69
70
        $this->context->expects($this->once())
71
            ->method('getRequest')
72
            ->willReturn($request);
73
74
        $this->assertSame($request, $resolver->resolve($this->context, $this->argument));
75
    }
76
}
77
78
class RequestChild extends Request
79
{
80
}
81