Failed Conditions
Pull Request — develop (#6719)
by Marco
65:21
created

StaticClassNameConverterTest::classNamesProvider()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 10
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 10
rs 9.4285
c 0
b 0
f 0
cc 1
eloc 7
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Doctrine\Tests\ORM\Utility;
6
7
use Doctrine\ORM\Utility\StaticClassNameConverter;
8
use PHPUnit\Framework\TestCase;
9
10
/**
11
 * @covers \Doctrine\ORM\Utility\StaticClassNameConverter
12
 */
13
class StaticClassNameConverterTest extends TestCase
14
{
15
    /**
16
     * @dataProvider classNamesProvider
17
     */
18
    public function testClassNameConversion(string $givenClassName, string $expectedClassName) : void
19
    {
20
        self::assertSame($expectedClassName, StaticClassNameConverter::getRealClass($givenClassName));
21
    }
22
23
    public function classNamesProvider() : array
24
    {
25
        return [
26
            ['foo', 'foo'],
27
            ['foo__PM__bar', 'foo__PM__bar'],
28
            ['foo\\__PM__\\baz\\bar', 'baz'],
29
            ['foo\\__PM__\\baz\\bar\\taz', 'baz\\bar'],
30
            ['foo\\aaa\\__PM__\\baz\\bar\\taz', 'baz\\bar'],
31
        ];
32
    }
33
34
    /**
35
     * @dataProvider classNamesProvider
36
     *
37
     * @runInSeparateProcess
38
     */
39
    public function testClassNameConversionFromObject(string $givenClassName, string $expectedClassName) : void
40
    {
41
        $namespaceParts = explode('\\', $givenClassName);
42
        $className      = array_pop($namespaceParts);
43
        $namespace      = implode('\\', $namespaceParts);
44
45
        eval('namespace ' . $namespace . ' { class ' . $className . ' {} }');
46
47
        self::assertSame($expectedClassName, StaticClassNameConverter::getClass(new $givenClassName));
48
    }
49
}
50