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 / SubstitutionsTest.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
SubstitutionsTest.php
133 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 SubstitutionsTest extends DiceTest {
8 public function testNoMoreAssign() {
9 $rule = [];
10 $rule['substitutions']['Bar77'] = [\Dice\Dice::INSTANCE => function() {
11 return Baz77::create();
12 }];
13
14 $dice = $this->dice->addRule('Foo77', $rule);
15
16 $foo = $dice->create('Foo77');
17
18 $this->assertInstanceOf('Bar77', $foo->bar);
19 $this->assertEquals('Z', $foo->bar->a);
20 }
21
22 public function testNullSubstitution() {
23 $rule = [];
24 $rule['substitutions']['B'] = null;
25 $dice = $this->dice->addRule('MethodWithDefaultNull', $rule);
26 $obj = $dice->create('MethodWithDefaultNull');
27 $this->assertNull($obj->b);
28 }
29
30 public function testSubstitutionText() {
31 $rule = [];
32 $rule['substitutions']['B'] = [\Dice\Dice::INSTANCE => 'ExtendedB'];
33 $dice = $this->dice->addRule('A', $rule);
34
35 $a = $dice->create('A');
36
37 $this->assertInstanceOf('ExtendedB', $a->b);
38 }
39
40 public function testSubstitutionTextMixedCase() {
41 $rule = [];
42 $rule['substitutions']['B'] = [\Dice\Dice::INSTANCE => 'exTenDedb'];
43 $dice = $this->dice->addRule('A', $rule);
44
45 $a = $dice->create('A');
46
47 $this->assertInstanceOf('ExtendedB', $a->b);
48 }
49
50 public function testSubstitutionCallback() {
51 $rule = [];
52 $injection = $this->dice;
53 $rule['substitutions']['B'] = [\Dice\Dice::INSTANCE => function() use ($injection) {
54 return $injection->create('ExtendedB');
55 }];
56
57 $dice = $this->dice->addRule('A', $rule);
58
59 $a = $dice->create('A');
60
61 $this->assertInstanceOf('ExtendedB', $a->b);
62 }
63
64
65 public function testSubstitutionObject() {
66 $rule = [];
67
68 $rule['substitutions']['B'] = $this->dice->create('ExtendedB');
69
70 $dice = $this->dice->addRule('A', $rule);
71
72 $a = $dice->create('A');
73 $this->assertInstanceOf('ExtendedB', $a->b);
74 }
75
76 public function testSubstitutionString() {
77 $rule = [];
78
79 $rule['substitutions']['B'] = [\Dice\Dice::INSTANCE => 'ExtendedB'];
80
81 $dice = $this->dice->addRule('A', $rule);
82
83 $a = $dice->create('A');
84 $this->assertInstanceOf('ExtendedB', $a->b);
85 }
86
87
88 public function testSubFromString() {
89 $rule = [
90 'substitutions' => ['Bar' => 'Baz']
91 ];
92 $dice = $this->dice->addRule('*', $rule);
93
94 $obj = $dice->create('Foo');
95
96 $this->assertInstanceOf('Baz', $obj->bar);
97
98 }
99
100 public function testSubstitutionWithFuncCall() {
101 $rule = [];
102
103 $rule['substitutions']['Bar'] = [\Dice\Dice::INSTANCE => ['Foo2', 'bar']];
104
105 $dice = $this->dice->addRule('Foo', $rule);
106
107 $a = $dice->create('Foo');
108 $this->assertInstanceOf('Baz', $a->bar);
109 }
110 }
111
112
113 class Foo {
114 public $bar;
115 public function __construct(Bar $bar) {
116 $this->bar = $bar;
117 }
118 }
119
120 class Foo2 {
121 public function bar() {
122 return new Baz;
123 }
124 }
125
126 interface Bar {
127
128 }
129
130 class Baz implements Bar {
131
132 }
133