File tree Expand file tree Collapse file tree 4 files changed +88
-0
lines changed
packages/reflection/tests Expand file tree Collapse file tree 4 files changed +88
-0
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Reflection \Tests \Fixtures ;
4+
5+ enum TestBackedEnum: string
6+ {
7+ }
Original file line number Diff line number Diff line change 66
77final class TestClassA
88{
9+ public function method (TestEnum $ enum , TestBackedEnum $ backedEnum , string $ other )
10+ {
11+
12+ }
913}
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Reflection \Tests ;
4+
5+ use PHPUnit \Framework \TestCase ;
6+ use Tempest \Reflection \ClassReflector ;
7+ use Tempest \Reflection \ParameterReflector ;
8+ use Tempest \Reflection \Tests \Fixtures \TestClassA ;
9+
10+ final class MethodReflectorTest extends TestCase
11+ {
12+ public function test_get_parameter_by_name (): void
13+ {
14+ $ this ->assertInstanceOf (
15+ ParameterReflector::class,
16+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('enum ' ),
17+ );
18+
19+ $ this ->assertNull (
20+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('unknown ' ),
21+ );
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Reflection \Tests ;
4+
5+ use PHPUnit \Framework \TestCase ;
6+ use Tempest \Reflection \ClassReflector ;
7+ use Tempest \Reflection \ParameterReflector ;
8+ use Tempest \Reflection \Tests \Fixtures \TestClassA ;
9+
10+ final class TypeReflectorTest extends TestCase
11+ {
12+ public function test_is_enum (): void
13+ {
14+ $ this ->assertTrue (
15+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('enum ' )->getType ()->isEnum (),
16+ );
17+
18+ $ this ->assertTrue (
19+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('backedEnum ' )->getType ()->isEnum (),
20+ );
21+
22+ $ this ->assertTrue (
23+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('backedEnum ' )->getType ()->isBackedEnum (),
24+ );
25+
26+ $ this ->assertTrue (
27+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('backedEnum ' )->getType ()->isEnum (),
28+ );
29+
30+ $ this ->assertTrue (
31+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('backedEnum ' )->getType ()->isUnitEnum (),
32+ );
33+
34+ $ this ->assertTrue (
35+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('enum ' )->getType ()->isUnitEnum (),
36+ );
37+
38+ $ this ->assertFalse (
39+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('enum ' )->getType ()->isBackedEnum (),
40+ );
41+
42+ $ this ->assertFalse (
43+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('other ' )->getType ()->isBackedEnum (),
44+ );
45+
46+ $ this ->assertFalse (
47+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('other ' )->getType ()->isEnum (),
48+ );
49+
50+ $ this ->assertFalse (
51+ new ClassReflector (TestClassA::class)->getMethod ('method ' )->getParameter ('other ' )->getType ()->isUnitEnum (),
52+ );
53+ }
54+ }
You can’t perform that action at this time.
0 commit comments