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 / NamespaceTest.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
NamespaceTest.php
67 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 NamespaceTest extends DiceTest {
8 public function testNamespaceBasic() {
9 $a = $this->dice->create('Foo\\A');
10 $this->assertInstanceOf('Foo\\A', $a);
11 }
12
13
14 public function testNamespaceWithSlash() {
15 $a = $this->dice->create('\\Foo\\A');
16 $this->assertInstanceOf('\\Foo\\A', $a);
17 }
18
19 public function testNamespaceWithSlashrule() {
20 $rule = [];
21 $rule['substitutions']['Foo\\A'] = [\Dice\Dice::INSTANCE => 'Foo\\ExtendedA'];
22 $dice = $this->dice->addRule('\\Foo\\B', $rule);
23
24 $b = $dice->create('\\Foo\\B');
25 $this->assertInstanceOf('Foo\\ExtendedA', $b->a);
26 }
27
28 public function testNamespaceWithSlashruleInstance() {
29 $rule = [];
30 $rule['substitutions']['Foo\\A'] = [\Dice\Dice::INSTANCE => 'Foo\\ExtendedA'];
31 $dice = $this->dice->addRule('\\Foo\\B', $rule);
32
33 $b = $dice->create('\\Foo\\B');
34 $this->assertInstanceOf('Foo\\ExtendedA', $b->a);
35 }
36
37 public function testNamespaceTypeHint() {
38 $rule = [];
39 $rule['shared'] = true;
40 $dice = $this->dice->addRule('Bar\\A', $rule);
41
42 $c = $dice->create('Foo\\C');
43 $this->assertInstanceOf('Bar\\A', $c->a);
44
45 $c2 = $dice->create('Foo\\C');
46 $this->assertNotSame($c, $c2);
47
48 //Check the rule has been correctly recognised for type hinted classes in a different namespace PrestoPlayer\$this->assertSame($c2->a, $c->a);
49 }
50
51 public function testNamespaceInjection() {
52 $b = $this->dice->create('Foo\\B');
53 $this->assertInstanceOf('Foo\\B', $b);
54 $this->assertInstanceOf('Foo\\A', $b->a);
55 }
56
57
58 public function testNamespaceRuleSubstitution() {
59 $rule = [];
60 $rule['substitutions']['Foo\\A'] = [\Dice\Dice::INSTANCE => 'Foo\\ExtendedA'];
61 $dice = $this->dice->addRule('Foo\\B', $rule);
62
63 $b = $dice->create('Foo\\B');
64 $this->assertInstanceOf('Foo\\ExtendedA', $b->a);
65 }
66
67 }