forked from codeigniter4/CodeIgniter4
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReflectionHelperTest.php
More file actions
93 lines (80 loc) · 2.1 KB
/
Copy pathReflectionHelperTest.php
File metadata and controls
93 lines (80 loc) · 2.1 KB
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
<?php namespace CodeIgniter\Test;
class ReflectionHelperTest extends \CIUnitTestCase
{
public function testGetPrivatePropertyWithObject()
{
$obj = new __TestForReflectionHelper();
$actual = $this->getPrivateProperty($obj, 'private');
$this->assertEquals('secret', $actual);
}
public function testGetPrivatePropertyWithObjectStaticCall()
{
$obj = new __TestForReflectionHelper();
$actual = \CIUnitTestCase::getPrivateProperty($obj, 'private');
$this->assertEquals('secret', $actual);
}
public function testGetPrivatePropertyWithStatic()
{
$actual = $this->getPrivateProperty(
__TestForReflectionHelper::class, 'static_private'
);
$this->assertEquals('xyz', $actual);
}
public function testSetPrivatePropertyWithObject()
{
$obj = new __TestForReflectionHelper();
$this->setPrivateProperty(
$obj, 'private', 'open'
);
$this->assertEquals('open', $obj->getPrivate());
}
public function testSetPrivatePropertyWithStatic()
{
$this->setPrivateProperty(
__TestForReflectionHelper::class, 'static_private', 'abc'
);
$this->assertEquals(
'abc', __TestForReflectionHelper::getStaticPrivate()
);
}
public function testGetPrivateMethodInvokerWithObject()
{
$obj = new __TestForReflectionHelper();
$method = $this->getPrivateMethodInvoker(
$obj, 'privateMethod'
);
$this->assertEquals(
'private param1param2', $method('param1', 'param2')
);
}
public function testGetPrivateMethodInvokerWithStatic()
{
$method = $this->getPrivateMethodInvoker(
__TestForReflectionHelper::class, 'privateStaticMethod'
);
$this->assertEquals(
'private_static param1param2', $method('param1', 'param2')
);
}
}
class __TestForReflectionHelper
{
private $private = 'secret';
private static $static_private = 'xyz';
public function getPrivate()
{
return $this->private;
}
public static function getStaticPrivate()
{
return self::$static_private;
}
private function privateMethod($param1, $param2)
{
return 'private ' . $param1 . $param2;
}
private static function privateStaticMethod($param1, $param2)
{
return 'private_static ' . $param1 . $param2;
}
}