add container independence tests

This commit is contained in:
sunxyw
2022-05-06 20:11:47 +08:00
parent a746779efa
commit b5a5a4f32e

View File

@@ -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'));
}
}