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 / CallTest.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
CallTest.php
96 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 CallTest extends DiceTest {
8 public function testCall() {
9 $rule = [];
10 $rule['call'][] = array('callMe', array());
11 $dice = $this->dice->addRule('TestCall', $rule);
12 $object = $dice->create('TestCall');
13 $this->assertTrue($object->isCalled);
14 }
15
16 public function testCallWithParameters() {
17 $rule = [];
18 $rule['call'][] = array('callMe', array('one', 'two'));
19 $dice = $this->dice->addRule('TestCall2', $rule);
20 $object = $dice->create('TestCall2');
21 $this->assertEquals('one', $object->foo);
22 $this->assertEquals('two', $object->bar);
23 }
24
25 public function testCallWithInstance() {
26 $rule = [];
27 $rule['call'][] = array('callMe', array([\Dice\Dice::INSTANCE => 'A']));
28 $dice = $this->dice->addRule('TestCall3', $rule);
29 $object = $dice->create('TestCall3');
30
31 $this->assertInstanceOf('a', $object->a);
32
33 }
34
35 public function testCallAutoWireInstance() {
36 $rule = [];
37 $rule['call'][] = array('callMe', []);
38 $dice = $this->dice->addRule('TestCall3', $rule);
39 $object = $dice->create('TestCall3');
40
41 $this->assertInstanceOf('a', $object->a);
42 }
43
44 public function testCallReturnValue() {
45 $rule = [];
46
47 $returnValue = null;
48
49 $rule['call'][] = array('callMe', [], function($return) use (&$returnValue) {
50 $returnValue = $return;
51 });
52
53
54 $dice = $this->dice->addRule('TestCall3', $rule);
55 $object = $dice->create('TestCall3');
56
57 $this->assertInstanceOf('a', $object->a);
58 $this->assertEquals('callMe called', $returnValue);
59 }
60
61
62 public function testCallChain() {
63 $rules = [
64 'TestCallImmutable' => [
65 'call' => [
66 ['call1', ['foo'], \Dice\Dice::CHAIN_CALL],
67 ['call2', ['bar'], \Dice\Dice::CHAIN_CALL]
68 ]
69 ]
70 ];
71
72 $dice = $this->dice->addRules($rules);
73
74 $object = $dice->create('TestCallImmutable');
75
76 $this->assertEquals('foo', $object->a);
77 $this->assertEquals('bar', $object->b);
78 }
79
80 public function testCallShareVariadic() {
81 // Shared params should not be passed to variadic call
82
83 $rules = [
84 'TestCallVariadic' => [
85 'call' => [
86 ['callMe', ['test1']]
87 ]
88 ]
89 ];
90
91 $dice = $this->dice->addRules($rules);
92 $object = $dice->create('TestCallVariadic', [], [new F()]);
93
94 $this->assertEquals(['test1'], $object->data);
95 }
96 }