/** * Resolve dependencies thru delegator * * @covers Phossa\Di\Extension\Delegate\Delegator::get * @covers Phossa\Di\Extension\Delegate\Delegator::has */ public function testGet2() { include_once __DIR__ . '/testData1.php'; include_once __DIR__ . '/testData2.php'; include_once __DIR__ . '/testData3.php'; $ct1 = new Container(); $aa = $ct1->get('AA'); // autowiring $ct1->setDelegate($this->object); $ct2 = new Container(); $xaa = $ct2->get('XAA'); // autowiring $ct2->setDelegate($this->object); $ct3 = new Container(); $ct3->setDelegate($this->object); $ct3->add('YAA', 'YAA'); $ct3->add('YBB', 'YBB'); // ct1 at first place $this->assertTrue($aa === $this->object->get('AA')); // ct2 $this->assertTrue($xaa === $this->object->get('XAA')); // ct3 $xcc = $this->object->get('YAA')->getC(); $this->assertTrue($xcc === $this->object->get('XCC')); }
/** * test auto() off for the last container * * @covers Phossa\Di\Container::setDelegate */ public function testSetDelegate2() { $delegator = new \Phossa\Di\Delegator(); $container1 = new Container(); $container2 = new Container(); $container1->setDelegate($delegator); $container2->setDelegate($delegator, true); // autowiring is on $delegator->get('DD'); // DD is in $container2 $this->assertFalse($container1->has('DD')); $this->assertTrue($container2->has('DD')); }