From b5a5a4f32e49d1a526614a776730aa2c236f65e3 Mon Sep 17 00:00:00 2001 From: sunxyw Date: Fri, 6 May 2022 20:11:47 +0800 Subject: [PATCH] add container independence tests --- tests/ZM/Container/ContainerTest.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/tests/ZM/Container/ContainerTest.php b/tests/ZM/Container/ContainerTest.php index 09951178..4029374a 100644 --- a/tests/ZM/Container/ContainerTest.php +++ b/tests/ZM/Container/ContainerTest.php @@ -13,12 +13,12 @@ use ZM\Container\WorkerContainer; */ class ContainerTest extends TestCase { - public function testInherit(): void + public function testCanInheritParentBinding(): void { $worker_container = new WorkerContainer(); $worker_container->instance('foo', 'bar'); - $container = new Container($worker_container); + $container = new Container(); $container->instance('baz', 'qux'); // 获取父容器的实例 @@ -27,4 +27,26 @@ class ContainerTest extends TestCase // 获取自身容器的实例 $this->assertEquals('qux', $container->get('baz')); } + + public function testCanOverrideParentBinding(): void + { + $worker_container = new WorkerContainer(); + $worker_container->instance('foo', 'bar'); + + $container = new Container(); + $container->instance('foo', 'qux'); + + $this->assertEquals('qux', $container->get('foo')); + } + + public function testCannotModifyParentBinding(): void + { + $worker_container = new WorkerContainer(); + $worker_container->instance('foo', 'bar'); + + $container = new Container(); + $container->instance('foo', 'qux'); + + $this->assertEquals('bar', $worker_container->get('foo')); + } }