File: ClassUtilsTest.php

package info (click to toggle)
php-doctrine-common 3.5.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,120 kB
  • sloc: php: 6,129; makefile: 22; xml: 16
file content (102 lines) | stat: -rw-r--r-- 3,113 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php

namespace Doctrine\Tests\Common\Util

{

    use Doctrine\Common\Util\ClassUtils;
    use Doctrine\Tests\DoctrineTestCase;
    use PHPUnit\Framework\Attributes\DataProvider;

    class ClassUtilsTest extends DoctrineTestCase
    {
        /**
         * @psalm-return list<array{class-string, class-string}>
         */
        public static function dataGetClass()
        {
            return [
                [\stdClass::class, \stdClass::class],
                [ClassUtils::class, ClassUtils::class],
                [ 'MyProject\Proxies\__CG__\stdClass', \stdClass::class],
                [ 'MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\stdClass', \stdClass::class],
                [ 'MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject', ChildObject::class],
            ];
        }

        #[DataProvider('dataGetClass')]
        public function testGetRealClass(string $className, string $expectedClassName): void
        {
            self::assertEquals($expectedClassName, ClassUtils::getRealClass($className));
        }

        #[DataProvider('dataGetClass')]
        public function testGetClass(string $className, string $expectedClassName): void
        {
            $object = new $className();
            self::assertEquals($expectedClassName, ClassUtils::getClass($object));
        }

        public function testGetParentClass(): void
        {
            $parentClass = ClassUtils::getParentClass('MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject');
            self::assertEquals('stdClass', $parentClass);
        }

        public function testGenerateProxyClassName(): void
        {
            self::assertEquals('Proxies\__CG__\stdClass', ClassUtils::generateProxyClassName('stdClass', 'Proxies'));
        }

        #[DataProvider('dataGetClass')]
        public function testNewReflectionClass(string $className, string $expectedClassName): void
        {
            $reflClass = ClassUtils::newReflectionClass($className);
            self::assertEquals($expectedClassName, $reflClass->getName());
        }

        #[DataProvider('dataGetClass')]
        public function testNewReflectionObject(string $className, string $expectedClassName): void
        {
            $object    = new $className();
            $reflClass = ClassUtils::newReflectionObject($object);
            self::assertEquals($expectedClassName, $reflClass->getName());
        }
    }

    class ChildObject extends \stdClass
    {
    }
}

namespace MyProject\Proxies\__CG__

{
    class stdClass extends \stdClass
    {
    }
}

namespace MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util

{
    class ChildObject extends \Doctrine\Tests\Common\Util\ChildObject
    {
    }
}

namespace MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__

{
    class stdClass extends \MyProject\Proxies\__CG__\stdClass
    {
    }
}

namespace MyProject\Proxies\__CG__\OtherProject\Proxies\__CG__\Doctrine\Tests\Common\Util

{
    class ChildObject extends \MyProject\Proxies\__CG__\Doctrine\Tests\Common\Util\ChildObject
    {
    }
}