ConstructorNewOperatorTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 3
Bugs 0 Features 1
Metric Value
wmc 2
c 3
b 0
f 1
lcom 1
cbo 2
dl 0
loc 29
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testConstructorNewOperatorRule() 0 11 1
A testConstructorWithoutNewOperatorRule() 0 8 1
1
<?php
2
3
namespace MS\PHPMD\Tests\Functional\Symfony2;
4
5
use MS\PHPMD\Tests\Functional\AbstractProcessTest;
6
7
/**
8
 * Class ConstructorNewOperatorTest
9
 *
10
 * @package MS\PHPMD\Tests\Functional\Symfony2
11
 */
12
class ConstructorNewOperatorTest extends AbstractProcessTest
13
{
14
    /**
15
     * @covers MS\PHPMD\Rule\Symfony2\ConstructorNewOperator
16
     */
17
    public function testConstructorNewOperatorRule()
18
    {
19
        $output = $this
20
            ->runPhpmd('Service/UserConverter.php', 'symfony2.xml')
21
            ->getOutput();
22
23
        $this->assertContains('Service/UserConverter.php:17	With a new operator in the constructor you have a strong dependency. Make your class flexible and inject the new instance via DI.', $output);
24
        $this->assertNotContains('Service/UserConverter.php:20', $output);
25
        $this->assertNotContains('Service/UserConverter.php:21', $output);
26
        $this->assertNotContains('Service/UserConverter.php:29', $output);
27
    }
28
29
    /**
30
     * @covers MS\PHPMD\Rule\Symfony2\ConstructorNewOperator
31
     */
32
    public function testConstructorWithoutNewOperatorRule()
33
    {
34
        $output = $this
35
            ->runPhpmd('Entity/Foo.php', 'symfony2.xml')
36
            ->getOutput();
37
38
        $this->assertNotContains('Entity/Foo.php:24', $output);
39
    }
40
}
41