Example #1
0
 /**
  * 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'));
 }
Example #2
0
 /**
  * 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'));
 }