PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.3
Presto Player v4.3.3
4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / vendor / level-2 / dice / tests / ChainTest.php
presto-player / vendor / level-2 / dice / tests Last commit date
TestData 2 years ago BasicTest.php 5 years ago CallTest.php 5 years ago ChainTest.php 5 years ago ConstructParamsTest.php 5 years ago CreateArgsTest.php 5 years ago DiceTest.php 5 years ago NamedInstancesTest.php 5 years ago NamespaceTest.php 5 years ago ShareInstancesTest.php 2 years ago SubstitutionsTest.php 5 years ago bootstrap.php 5 years ago
ChainTest.php
119 lines
1 <?php
2 /* @description Dice - A minimal Dependency Injection Container for PHP *
3 * @author Tom Butler tom@r.je *
4 * @copyright 2012-2018 Tom Butler <tom@r.je> | https:// r.je/dice.html *
5 * @license http:// www.opensource.org/licenses/bsd-license.php BSD License *
6 * @version 3.0 */
7 class ChainTest extends DiceTest {
8 public function testChainCall() {
9 $dice = $this->dice->addRules([
10 '$someClass' => [
11 'instanceOf' => 'Factory',
12 'call' => [
13 ['get', [], \Dice\Dice::CHAIN_CALL]
14 ]
15 ]
16 ]);
17
18 $obj = $dice->create('$someClass');
19
20 $this->assertInstanceOf('FactoryDependency', $obj);
21
22 }
23
24 public function testMultipleChainCall() {
25 $dice = $this->dice->addRules([
26 '$someClass' => [
27 'instanceOf' => 'Factory',
28 'call' => [
29 ['get', [], \Dice\Dice::CHAIN_CALL],
30 ['getBar', [], \Dice\Dice::CHAIN_CALL]
31 ]
32 ]
33 ]);
34
35 $obj = $dice->create('$someClass');
36
37 $this->assertEquals('bar', $obj);
38
39 }
40
41 public function testChainCallShared() {
42 $dice = $this->dice->addRules([
43 '$someClass' => [
44 'shared' => true,
45 'instanceOf' => 'Factory',
46 'call' => [
47 ['get', [], \Dice\Dice::CHAIN_CALL]
48 ]
49 ]
50 ]);
51
52 $obj = $dice->create('$someClass');
53
54 $this->assertInstanceOf('FactoryDependency', $obj);
55 }
56
57
58 public function testChainCallInject() {
59 $dice = $this->dice->addRules([
60 'FactoryDependency' => [
61 'instanceOf' => 'Factory',
62 'call' => [
63 ['get', [], \Dice\Dice::CHAIN_CALL]
64 ]
65 ]
66 ]);
67
68 $obj = $dice->create('RequiresFactoryDependecy');
69
70 $this->assertInstanceOf('FactoryDependency', $obj->dep);
71 }
72
73 public function testChainCallInjectShared() {
74 $dice = $this->dice->addRules([
75 'FactoryDependency' => [
76 'shared' => true,
77 'instanceOf' => 'Factory',
78 'call' => [
79 ['get', [], \Dice\Dice::CHAIN_CALL]
80 ]
81 ]
82 ]);
83
84
85 $dice->create('FactoryDependency');
86
87 $obj = $dice->create('RequiresFactoryDependecy');
88
89 $this->assertInstanceOf('FactoryDependency', $obj->dep);
90
91 $obj2 = $dice->create('RequiresFactoryDependecy');
92
93
94 $this->assertNotSame($obj, $obj2);
95 $this->assertSame($obj->dep, $obj2->dep);
96 }
97
98 }
99
100
101 class Factory {
102 public function get() {
103 return new FactoryDependency;
104 }
105 }
106
107 class FactoryDependency {
108 public function getBar() {
109 return 'bar';
110 }
111 }
112
113 class RequiresFactoryDependecy {
114 public $dep;
115
116 public function __construct(FactoryDependency $dep) {
117 $this->dep = $dep;
118 }
119 }