Completed
Push — master ( 8e1573...db6321 )
by
unknown
16:08 queued 08:39
created

UrlGeneratorTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 53
Duplicated Lines 75.47 %

Coupling/Cohesion

Components 0
Dependencies 7

Importance

Changes 0
Metric Value
wmc 3
lcom 0
cbo 7
dl 40
loc 53
rs 10
c 0
b 0
f 0

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
namespace MediaMonks\SonataMediaBundle\Tests\Unit\Generator;
4
5
use MediaMonks\SonataMediaBundle\Generator\UrlGenerator;
6
use MediaMonks\SonataMediaBundle\ParameterBag\ImageParameterBag;
7
use MediaMonks\SonataMediaBundle\Handler\ParameterHandlerInterface;
8
use MediaMonks\SonataMediaBundle\Model\MediaInterface;
9
use MediaMonks\SonataMediaBundle\Tests\Unit\MockeryTrait;
10
use Mockery as m;
11
use Symfony\Bundle\FrameworkBundle\Routing\Router;
12
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
13
14
class UrlGeneratorTest extends \PHPUnit_Framework_TestCase
15
{
16
    use MockeryTrait;
17
18
    public function setUp()
19
    {
20
        parent::setUp();
21
22
        m::resetContainer();
23
    }
24
25
    public function testGenerate()
26
    {
27
        $router = m::mock(Router::class);
28
        $router->shouldReceive('generate')->withArgs(
29
            ['route_name', [], UrlGeneratorInterface::ABSOLUTE_PATH]
30
        )->andReturn('http://route/1/');
31
32
        $parameterHandler = m::mock(ParameterHandlerInterface::class);
33
        $parameterHandler->shouldReceive('getQueryString')->andReturn('querystring');
34
        $parameterHandler->shouldReceive('getRouteParameters')->andReturn([]);
35
36
        $generator = new UrlGenerator($router, $parameterHandler, 'route_name');
37
38
        $media = m::mock(MediaInterface::class);
39
        $media->shouldReceive('getFocalPoint')->andReturn('50-50');
40
41
        $parameterBag = new ImageParameterBag(400, 300);
42
43
        $this->assertEquals('http://route/1/', $generator->generate($media, $parameterBag));
44
    }
45
46
    public function testGenerateWithRouteName()
47
    {
48
        $router = m::mock(Router::class);
49
        $router->shouldReceive('generate')->withArgs(
50
            ['route_name_custom', [], UrlGeneratorInterface::ABSOLUTE_PATH]
51
        )->andReturn('http://route-foo/1/');
52
53
        $parameterHandler = m::mock(ParameterHandlerInterface::class);
54
        $parameterHandler->shouldReceive('getQueryString')->andReturn('querystring');
55
        $parameterHandler->shouldReceive('getRouteParameters')->andReturn([]);
56
57
        $generator = new UrlGenerator($router, $parameterHandler, 'route_name');
58
59
        $parameterBag = new ImageParameterBag(400, 300);
60
61
        $media = m::mock(MediaInterface::class);
62
        $media->shouldReceive('getFocalPoint')->andReturn('50-50');
63
64
        $this->assertEquals('http://route-foo/1/', $generator->generate($media, $parameterBag, 'route_name_custom'));
65
    }
66
}
67