Пример #1
0
 /**
  * @group SetterInjection
  */
 public function testGetWillResolveSetterInjectionDependenciesAndInstanceAreTheSame()
 {
     $di = new DependencyInjector();
     $b = $di->get('ZendTest\Di\TestAsset\SetterInjection\B');
     $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\B', $b);
     $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\A', $b->a);
     
     $b2 = $di->get('ZendTest\Di\TestAsset\SetterInjection\B');
     $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\B', $b2);
     $this->assertInstanceOf('ZendTest\Di\TestAsset\SetterInjection\A', $b2->a);
     
     $this->assertSame($b, $b2);
     $this->assertSame($b->a, $b2->a);
 }
Пример #2
0
 /**
  * Fix for PHP bug in is_subclass_of
  * 
  * @see https://bugs.php.net/bug.php?id=53727
  */
 public function testNewInstanceWillUsePreferredClassForInterfaceHints()
 {
     $di = new DependencyInjector();
     $di->getInstanceManager()->addTypePreference(
         'ZendTest\Di\TestAsset\PreferredImplClasses\A',
         'ZendTest\Di\TestAsset\PreferredImplClasses\BofA'
     );
     
     $c = $di->get('ZendTest\Di\TestAsset\PreferredImplClasses\C');
     $a = $c->a;
     $this->assertInstanceOf('ZendTest\Di\TestAsset\PreferredImplClasses\BofA', $a);
     $d = $di->get('ZendTest\Di\TestAsset\PreferredImplClasses\D');
     $this->assertSame($a, $d->a);
 }