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 / ShareInstancesTest.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
ShareInstancesTest.php
97 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 ShareInstancesTest extends DiceTest {
8 public function testShareInstances() {
9 $rule = [];
10 $rule['shareInstances'] = ['Shared'];
11 $dice = $this->dice->addRule('TestSharedInstancesTop', $rule);
12
13
14 $shareTest = $dice->create('TestSharedInstancesTop');
15
16 $this->assertinstanceOf('TestSharedInstancesTop', $shareTest);
17
18 $this->assertInstanceOf('SharedInstanceTest1', $shareTest->share1);
19 $this->assertInstanceOf('SharedInstanceTest2', $shareTest->share2);
20
21 $this->assertSame($shareTest->shared, $shareTest->share1->shared);
22 $this->assertSame($shareTest->share1->shared, $shareTest->share2->shared);
23 $this->assertEquals($shareTest->shared->uniq, $shareTest->share1->shared->uniq);
24 $this->assertEquals($shareTest->share1->shared->uniq, $shareTest->share2->shared->uniq);
25
26 }
27
28 public function testNamedShareInstances() {
29
30 $rule = [];
31 $rule['instanceOf'] = 'Shared';
32 $dice = $this->dice->addRule('$Shared', $rule);
33
34 $rule = [];
35 $rule['shareInstances'] = ['$Shared'];
36 $dice = $dice->addRule('TestSharedInstancesTop', $rule);
37
38
39 $shareTest = $dice->create('TestSharedInstancesTop');
40
41 $this->assertinstanceOf('TestSharedInstancesTop', $shareTest);
42
43 $this->assertInstanceOf('SharedInstanceTest1', $shareTest->share1);
44 $this->assertInstanceOf('SharedInstanceTest2', $shareTest->share2);
45
46 $this->assertSame($shareTest->shared, $shareTest->share1->shared);
47 $this->assertSame($shareTest->share1->shared, $shareTest->share2->shared);
48 $this->assertEquals($shareTest->shared->uniq, $shareTest->share1->shared->uniq);
49 $this->assertEquals($shareTest->share1->shared->uniq, $shareTest->share2->shared->uniq);
50
51
52 $shareTest2 = $dice->create('TestSharedInstancesTop');
53 $this->assertNotSame($shareTest2->share1->shared, $shareTest->share2->shared);
54 }
55
56
57 public function testShareInstancesNested() {
58 $rule = [];
59 $rule['shareInstances'] = ['F'];
60 $dice = $this->dice->addRule('A4',$rule);
61 $a = $dice->create('A4');
62 $this->assertTrue($a->m1->f === $a->m2->e->f);
63 }
64
65
66 public function testShareInstancesMultiple() {
67 $rule = [];
68 $rule['shareInstances'] = ['Shared'];
69 $dice = $this->dice->addRule('TestSharedInstancesTop', $rule);
70
71
72 $shareTest = $dice->create('TestSharedInstancesTop');
73
74 $this->assertinstanceOf('TestSharedInstancesTop', $shareTest);
75
76 $this->assertInstanceOf('SharedInstanceTest1', $shareTest->share1);
77 $this->assertInstanceOf('SharedInstanceTest2', $shareTest->share2);
78
79 $this->assertSame($shareTest->shared, $shareTest->share1->shared);
80 $this->assertSame($shareTest->share1->shared, $shareTest->share2->shared);
81 $this->assertEquals($shareTest->shared->uniq, $shareTest->share1->shared->uniq);
82 $this->assertEquals($shareTest->share1->shared->uniq, $shareTest->share2->shared->uniq);
83
84
85 $shareTest2 = $dice->create('TestSharedInstancesTop');
86 $this->assertSame($shareTest2->shared, $shareTest2->share1->shared);
87 $this->assertSame($shareTest2->share1->shared, $shareTest2->share2->shared);
88 $this->assertEquals($shareTest2->shared->uniq, $shareTest2->share1->shared->uniq);
89 $this->assertEquals($shareTest2->share1->shared->uniq, $shareTest2->share2->shared->uniq);
90
91 $this->assertNotSame($shareTest->shared, $shareTest2->shared);
92 $this->assertNotSame($shareTest->share1->shared, $shareTest2->share2->shared);
93 $this->assertNotEquals($shareTest->shared->uniq, $shareTest2->shared->uniq);
94 $this->assertNotEquals($shareTest->share1->shared->uniq, $shareTest2->share2->shared->uniq);
95
96 }
97 }